ตอบสนองรุ่นพื้นเมืองไม่ตรงกัน


196

รับข้อความต่อไปนี้เมื่อฉันเริ่มโครงการใหม่แล้วเปิดตัวจำลอง Xcode:

React-Native Version Mismatch ไม่ตรงกัน

Javascript เวอร์ชัน 0.50.1 รุ่นพื้นเมือง: 0.50.0

ตรวจสอบให้แน่ใจว่าคุณได้สร้างรหัสเนทีฟใหม่ ...

ไม่มีใครรู้ว่าเกิดอะไรขึ้นที่นี่และสามารถช่วยฉันได้บ้าง

คำตอบ:


342

นี่คือสิ่งที่ฉันทำกับมัน:

ปิดเทอร์มินัลทั้งหมดแล้วรันบิลด์อีกครั้ง

คุณอาจลืมปิดเทอร์มินัล nodejs จากโปรเจ็กต์อื่นและพวกเขาได้ติดตั้งเวอร์ชั่นตอบสนองที่แตกต่างกัน

ดังนั้นรหัสดึงมาจากเซิร์ฟเวอร์ nodejs ขัดแย้งกับคนพื้นเมือง


1
ถ้าฉันไม่ต้องการปิดเทอร์มินัลที่เปิดอยู่ในปัจจุบัน (ฉันมีแอพพลิเคชั่นทำงานอยู่ที่นั่น) มีวิธีแก้ปัญหาอื่นอีกหรือไม่
Dimitar Tsonev

1
@DimitarTsonev Bundling 'index.android.js' 100.0% (1/1), doneคุณก็สามารถที่ใกล้ขั้วเฉพาะเปิดโดยตอบสนองพื้นเมืองซึ่งแสดงให้เห็นว่า
Val

1
บังคับใช้อย่างเต็มที่โดยใช้เวอร์ชันการพึ่งพาปฏิกิริยาในที่build.gradleทำงาน ขอบคุณ @Val
jake oliver

ปิดเทอร์มินัลทั้งหมดและใช้:react-native run-ios
Steffo Dimfelt

ยังทำงานpod installถ้าคุณใช้ cocoapods
Array

36

ในกรณีที่คุณสร้างแอป react-native ของคุณโดยใช้ create-react-native-app คุณควรมี app.json (expo) และไฟล์ package.json ให้ตรวจสอบว่าเวอร์ชั่นของงานแสดงตรงกันและเปลี่ยนแปลงตามนั้นหรือไม่ เช่นในกรณีของฉันปัญหาคือว่าในไฟล์ app.json ฉันมีรุ่น 25.0.0 สำหรับแอตทริบิวต์ sdkVersion expoฉันเปลี่ยนมันเป็น 23.0.0 และทุกอย่างทำงานได้

package.json:

"dependencies": {
    "expo": "^23.0.4",
    "react": "16.0.0",
    "react-native": "^0.50.4"
  }

app.json:

{
  "expo": {
    "sdkVersion": "23.0.0" // before was 25.0.0
  }
}

สิ่งนี้ได้ผลสำหรับฉัน! การอัปเดตด่วน: คุณไม่สามารถใช้โมดูล npm โดยตรงสำหรับแพ็คเกจตอบโต้ของคุณและมี tarball แทน หากเป็นกรณีนี้คุณสามารถใช้สถานะตอบรับดั้งเดิมเพื่อยืนยันเวอร์ชัน RN ของคุณ :)
blakeface

15

เพียงไปที่ของคุณandroid/app/build.gradleแล้วเพิ่มในdependenciesส่วน:

dependencies{
compile ("com.facebook.react:react-native:0.50.3") { force = true } 
}

/// รุ่นดั้งเดิมของการโต้ตอบสามารถพบได้ใน package.json


5
ฉันจะเปลี่ยนเป็น iOS ได้ที่ไหน
Anurag Shrivastava

อะไรคือสิ่งที่เทียบเท่ากับการเปลี่ยนแปลงใน package.json
Nate Glenn

8

เพียงบังคับให้ตอบสนองรุ่นเนทีฟในไฟล์ระดับแอป Android ของคุณในdependenciesส่วน

compile ("com.facebook.react:react-native:0.52.0") { force = true }

ทำงานให้ฉัน


2
สิ่งนี้ใช้ได้สำหรับฉัน ฉันมี 0.53.3 ฉันเพิ่มแรงด้วย 0.53.3 อาคารที่ทำการรีสตาร์ทวิ่งnpm start -- --reset-cacheและวิ่งreact-native run-android
Florin Dobre

6

ฉันไม่เคยเห็นข้อผิดพลาดนี้มาก่อน แต่เมื่อใดก็ตามที่ฉันไม่สามารถทำให้ Xcode และ React-Native เล่นด้วยกันได้ฉันจะทำสองสิ่ง ตรวจสอบเวอร์ชันของ Xcode ที่ฉันใช้งานอยู่ หากจำเป็นต้องได้รับการอัปเดตฉันจะอัปเดต จากนั้นการล้างยามและแคชเป็นที่ที่สองที่ฉันไป ฉันไม่ได้ใช้คำสั่งรีเซ็ตแคช มันบอกเสมอว่าฉันต้องตรวจสอบแคชดังนั้นฉันจึงข้ามไป (คุณสามารถทำได้แม้ว่าฉันเพิ่งสับสน) ฉันใช้ rm -rf $ TMPDIR / react- * เพื่อกำจัดการสร้างแคชใด ๆ หากยังไม่ได้ผลฉันพยายามสร้างแอพใน Xcode จากนั้นทำงานจากที่นั่นเพื่อสร้างด้วย run-ios แบบตอบสนองดั้งเดิม ด้วยข้อความแสดงข้อผิดพลาดนี้ดูเหมือนว่าคุณอาจเริ่มต้นด้วยการพยายามสร้างด้วย Xcode หวังว่าจะช่วย ... แจ้งให้เราทราบความคืบหน้าของคุณด้วย โชคดี! (นอกจากนี้คุณสามารถอัปเดตเป็น RN 0


อีกอย่างคือฉันเล่นรอบกับงานแสดงสินค้า สงสัยว่าเรื่องยุ่ง ๆ หรือเปล่า
Sam Rao

คุณสามารถทำการติดตั้ง npm - บันทึก react-native@0.51 แต่ฉันจะลองสร้างด้วย Xcode ก่อน คุณทำอย่างนั้นหรือยัง หากคุณต้องการความช่วยเหลือแจ้งให้เราทราบ
Jared Nelson

6

หากคุณใช้แอป React Native ผ่าน Expo การอัพเกรด React Native อาจทำให้เกิดข้อผิดพลาดนี้ (ดังที่บันทึกไว้ที่https://github.com/expo/expo/issues/923 )

หากนั่นเป็นสถานการณ์ของคุณตัวเลือกของคุณคือ:

  1. Bump Expo (ซึ่งมีอยู่ในรายการของคุณpackage.json) เป็นรุ่นที่เข้ากันได้กับรุ่น React Native ของคุณ ( หากมีอยู่ซึ่งอาจไม่ใช่กรณี - ตัดสินโดยปัญหาที่เชื่อมโยงฉันคิดว่า Expo รองรับเส้นทาง React Native ที่เผยแพร่)
  2. ยกเลิกการเปลี่ยนแปลงของคุณลบและติดตั้งโมดูลโหนดของคุณEjectจาก Expo แล้ว (หลังจากการตรวจสอบว่าคุณยังสามารถใช้ app ของคุณโพสต์ออกมา) ลองปรับรุ่นของคุณอีกครั้ง

งานเอ็กซ์โปสนับสนุนเฉพาะปฏิกิริยาตอบสนองมากถึง 59.8 ในขณะที่เขียน สำหรับความเข้ากันได้ของ expo / react-native ดูที่docs.expo.io/versions/latest/sdk/overview/#sdk-version (ไม่ใช่สาเหตุข้อผิดพลาดเดียวกันกับ OP แต่ดูเหมือนว่าจะเกี่ยวข้องกับการบันทึก)
Tijs Maas

6

ฉันมีปัญหานี้มาเป็นเวลานานและไม่มีวิธีแก้ปัญหาใดที่ช่วยได้ ฉันอยู่ในช่วงกลางของการอัพเกรดตอบสนองพื้นเมืองในcreate-react-native-appโครงการจนกว่าฉันจะพบว่าไม่ทุกรุ่นของ Expo รองรับ React Native ล่าสุด

พบหน้านี้เชื่อมโยงในเอกสารที่แสดงการผสมผสานเวอร์ชั่นของ React Native, React และ Expo อย่างเป็นทางการ:

ที่มา: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md

การแก้ไขapp.jsonและpackage.jsonไฟล์ให้ตรงกับเวอร์ชันที่เกี่ยวข้องและการทำงานnpm installทำให้ทุกอย่างทำงานได้อีกครั้ง


6

ฉันกำลังใช้อุปกรณ์ทางกายภาพในกรณีนี้การแก้ไขปัญหา:

  1. ถอนการติดตั้งแอพ
  2. lsof -i :8081
  3. kill -9 PID
  4. สร้างแอปขึ้นใหม่ ( react-native run-androidหรือreact-native run-ios)

เพียงแค่ฆ่า PID ทั้งหมดจากlsof -i :8081และสร้างใหม่ก็ทำได้สำหรับฉันใน iOS Simulator
Ronan Boiteau

เหมือนกันที่นี่ - ลอง Rimraf node_modules เริ่มต้น npm - รีเซ็ตแคช ฯลฯ - ไม่มีอะไรทำงาน จากนั้นฉันก็ทำตามข้างบน - ถอนการติดตั้งแอพใช้ taskkill / im node.exe และ taskkill / f / PID (หมายเลขที่ระบุในขั้นตอนสุดท้ายของ PID ที่มีอยู่) จากนั้นทำปฏิกิริยากับรัน Android แบบดั้งเดิม ทำงานรักษา!
user1641906

5

สำหรับนักพัฒนา Android ที่ไม่สามารถแก้ไขได้โดยเพียงแค่ปิดและสร้างใหม่ถอนการติดตั้งแอพด้วยตัวจำลอง / อุปกรณ์ด้วยตนเอง


3
การถอนการติดตั้งแอพพลิเคชั่นจาก IOS simulator สำหรับฉัน
negative_zero

5

ในไฟล์ build.gradle ของคุณเพิ่มต่อไปนี้

implementation ("com.facebook.react:react-native:0.51.0") {
    force = true;
}

แทนที่0.51.0ด้วยรุ่นใน package.json ของคุณ


4

ลองติดตั้งการอ้างอิงอีกครั้ง ที่ทำงานให้ฉัน -

1. ) yarn/npm install
2. )yarn/npm start --reset-cache


3

สำหรับฉันมันเป็นเพราะreact-nativeรุ่นในdependencyส่วนของpackage.jsonไฟล์ มันเป็น:

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "~0.55.0"
}

ฉัน chaged ไปที่:

"dependencies": {
"expo": "^27.0.1",
"react": "16.3.1",
"react-native": "0.52.0"
}

ตอนนี้มันใช้งานได้ดี


3

สำหรับกรณีของฉันฉันกำลังเผชิญหน้ากับมันบน iOS และฉันพยายามรีเซ็ตและล้างแคชทั้งหมดโดยใช้คำสั่งด้านล่าง แต่ก็ล้มเหลวเช่นกันแม้ว่าจะมีความคิดเห็นมากมายที่บอกว่าสาเหตุที่แท้จริงคือมีผู้ตอบสนองทำงานอยู่ที่ไหนสักแห่งโดยบังเอิญ แม็คของฉันและปัญหายังคงอยู่

watchman watch-del-all && rm -rf node_modules/ && yarn cache clean && yarn install && yarn start --reset-cache

วิธีแก้ไขคือลบโฟลเดอร์ build @ /ios/buildจากนั้นดำเนินการreact-native run-iosแก้ไข


3

ฉันได้ลองวิธีแก้ปัญหาข้างต้นแล้ว แต่การเพิ่มไปยังAndroidManifest.xmlดูเหมือนว่าจะแก้ไขได้

  android:usesCleartextTraffic="true"

1
มันใช้งานได้อย่างมีเสน่ห์ .. นี่คือเหตุผลที่ฉันจะไม่ชอบหุ่นยนต์ .. มีคำวิเศษที่ช่วยแก้ปัญหาของคุณที่ทำให้คุณคลั่งไคล้อยู่หลายชั่วโมง
picacode

2

สำหรับผู้อื่นที่มีปัญหาเดียวกันบน iOS กับ CocoaPods:

ฉันลองแก้ปัญหาทั้งหมดข้างต้นโดยไม่มีโชค ฉันมีแพคเกจบางอย่างที่มีการอ้างอิงดั้งเดิมในโครงการของฉันและบางโมดูลที่จำเป็นต้องมีการติดตั้ง แต่ปัญหาก็คือที่ตอบสนองถูกระบุใน Podfile ของฉัน react-native-git-upgradeแต่ฝักตอบสนองไม่ได้รับการอัปเกรดอัตโนมัติโดยใช้

cd ios && pod installการแก้ไขคือการปรับฝักที่ติดตั้งทั้งหมดโดยการทำงาน


2

ในกรณีของฉันติดตั้งอุปกรณ์เสมือนใหม่ช่วย ตอนนี้ฉันใช้ 1 อุปกรณ์ต่อหนึ่งแอพ


2

ผู้ใช้งาน Expo - ตรวจสอบให้แน่ใจว่าapp.jsonรุ่น sdk และpackage.jsonรุ่นงานแสดงสินค้าของคุณนั้น (อาจจะเท่ากัน) เข้ากันได้


ขอบคุณ! นี่เป็นวิธีแก้ปัญหาสำหรับผู้ใช้งานเอ็กซ์โปรายใหม่
Jasper Blues

1

ฉันยังมีปัญหานี้โดยใช้ Expo และ iOS Simulator สิ่งที่ใช้ได้ผลสำหรับฉันคือการลบเครื่องมือจำลองHardware > Erase All Content and Settings...


ฉันค่อนข้างมั่นใจว่าสิ่งนี้สามารถทำได้โดยเพียงแค่ถอนการติดตั้งแอพ Expo จากตัวจำลอง ไม่จำเป็นต้องทุกอย่าง
Ajay

1

การแก้ไขที่เป็นไปได้:

  1. ลบpackage-lock.json
  2. วิ่ง: watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install

หากปัญหายังคงมีอยู่ให้ลองดำเนินการโครงการโดยตรงจากXcode

สิ่งนี้ใช้ได้สำหรับฉัน


1

ในกรณีของฉัน (ไม่ได้ใช้งานงานสร้าง & งาน Android)

package.json

"dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.2"
}

และ app.json

{
  "sdkVersion": "27"
}

แก้ไขปัญหา


นี่เป็นเรื่องจริงโดยเฉพาะถ้าคุณใช้งาน Expo ตรวจสอบเอกสารการอัปเกรดของ Expo สำหรับข้อมูลเพิ่มเติม: docs.expo.io/versions/latest/workflow/…
blakeface

1

ฉันพยายามสร้างและเรียกใช้แอป React Native จาก WebStorm และพบปัญหานี้ ทางออกที่ง่ายสำหรับฉันคือ:

watchman watch-del-all

บน macOS หากwatchmanยังไม่ได้ติดตั้งให้ติดตั้งโดยใช้Homebrew :

brew install watchman

1

มันเกิดขึ้นบางครั้งเมื่อคุณพยายามเรียกใช้โดยไม่ปิดโหนดเซิร์ฟเวอร์ซึ่งแอปก่อนหน้านี้ทำงานอยู่ดังนั้นให้ลองรีสตาร์ท React โดยทำตามขั้นตอนต่อไปนี้เพียงแค่เรียกใช้คำสั่งต่อไปนี้:

1. To kill current processes
killall node -9 

2. To Start React  Native
react-native start 

3. Then Run android
react-native run-android

1

ในกรณีของฉันฉันเปลี่ยนexpoรุ่นด้วยตนเอง ฉันมีปัญหาเดียวกันเพราะฉันลืมอัปเดตsdkVersionในapp.jsonและbabel-preset-expoในpackage.json

หลังจากรันแล้ว: expo r -cเพื่อล้างแคชและเริ่มแอป


1

การแก้ไขที่เราทำคือการทำให้แน่ใจว่าตัวแปร ANDROID_HOME และ PATH ถูกตั้งค่าก่อนการสร้าง

ก่อนอื่นให้รันคำสั่งสองคำสั่งด้านล่างจากนั้นสร้างแอปสำหรับอุปกรณ์

export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

1

ฉันได้รับการจัดหมวดหมู่นี้เมื่อคำจำกัดความประเภทของ TypeScript ไม่ตรงกัน

EG react-nativeที่ 0.61.5 ในdependenciesและ@types/react-nativeที่ 0.60.0 ในdevDependenciesใน

ทันทีที่ฉันอัปเดต devDependencies ก็ใช้ได้ ไม่ต้องรีสตาร์ทอะไรเลย


0

นี่ไม่ใช่การแก้ไข แต่ในกรณีของฉันฉันมีแอป RN หลายตัวติดตั้งอยู่ในอุปกรณ์ของฉันและฉันพยายาม 'โหลดซ้ำ' จากภายในแอปพลิเคชันที่ไม่ถูกต้อง (ตอนนี้ฉันกำลังพัฒนาสองแอพพร้อมกัน) ดังนั้นตรวจสอบให้แน่ใจว่าคุณอยู่ในแอปพลิเคชันที่ถูกต้อง!


0

ลองเปลี่ยนเวอร์ชันของ react-native ของคุณที่ระบุใน package.json ของคุณ (ภายใต้ dependencies - react-native) เป็นเหมือนกับ 'Native Version' ที่แสดงในข้อความแสดงข้อผิดพลาด จากนั้นเรียกใช้ 'ติดตั้ง npm' อีกครั้ง


มีความคิดใดที่จะปรับลดรุ่นที่กล่าวถึงใน package.json?
HungrySoul

ใน package.json คุณควรเห็นบางอย่างเช่น "react-native": "^ 0.55.0" ภายใต้ "dependencies" เปลี่ยนหมายเลขนั้น (0.55.0 ในตัวอย่างนี้) เป็นรุ่นที่คุณต้องการแล้วเรียกใช้ "npm install" อีกครั้ง
Pnar Sbi Wer

0

ฉันมีปัญหาเดียวกันในขณะที่สร้างแอปตอบโต้พื้นเมืองสำหรับ Android และฉันทำสิ่งต่อไปนี้ซึ่งใช้ได้กับฉัน

"JavaScript รุ่น 0.50.1" ในคอนโซลข้อผิดพลาดเป็นเวอร์ชั่นที่ตอบสนองต่อpackage.jsonไฟล์ของคุณ ตรวจสอบให้แน่ใจว่าเป็นรุ่นเดียวกันกับ "Native version 0.50.0" ในคอนโซลข้อผิดพลาด

  1. ฉันได้อัปเดตเวอร์ชันตอบสนองดั้งเดิมเป็น "Native Version 0.50.0" ตามที่ได้รับแจ้งในคอนโซลข้อผิดพลาด
  2. สร้างแอปreact-native run-androidขึ้นใหม่


0

Opene projectdir / android / app / build.gradle

ลอง:

คอมไพล์ ("com.facebook.react: react-native: 0.51.0") {force = true}

แทนการคอมไพล์ "com.facebook.react: react-native: 0.51.0" {force = true}

อ้างอิง: ลิงค์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.