Bereaksi ketidakcocokan versi asli

196

Mendapatkan pesan berikut ketika saya memulai proyek baru dan kemudian meluncurkan emulator Xcode:

Ketidakcocokan versi asli-reaksi

Versi Javascript 0.50.1 Versi asli: 0.50.0

Pastikan Anda telah membangun kembali kode asli. ...

Adakah yang tahu apa yang sedang terjadi di sini dan dapat membantu saya?

Sam Rao
sumber

Jawaban:

337

Inilah yang saya lakukan dengan itu:

Tutup semua terminal dan jalankan build lagi.

Anda mungkin lupa untuk menutup terminal nodejs dari proyek lain, dan mereka telah menginstal versi reaksi yang berbeda.

Jadi kode itu mengambil dari konflik server nodejs dengan yang asli.

Val
sumber
1
bagaimana jika saya tidak ingin menutup terminal yang saya buka saat ini (saya punya aplikasi yang berjalan di sana)? Apakah ada solusi lain?
Dimitar Tsonev
1
@ DimitarTsonev Anda bisa menutup terminal tertentu yang dibuka oleh react-asli, yang menunjukkan Bundling 'index.android.js' 100.0% (1/1), done.
Val
1
paksa sepenuhnya menggunakan versi dependensi reaksi dalam build.gradlebekerja. thanks @Val
jake oliver
Tutup semua terminal dan gunakan:react-native run-ios
Steffo Dimfelt
jalankan juga pod installjika Anda menggunakan cocoapods.
Array
37

Jika Anda membuat aplikasi reaksi asli menggunakan aplikasi buat-reaksi-asli. Anda harus memiliki app.json (expo). dan file package.json, periksa apakah versi expo cocok dan berubah sesuai. Sebagai contoh dalam kasus saya masalahnya adalah bahwa dalam file app.json saya memiliki versi 25.0.0 untuk atribut expo sdkVersion , saya mengubahnya ke 23.0.0 dan semuanya bekerja.

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
  }
}
Kemenangan
sumber
Ini berhasil untuk saya! Pembaruan cepat: Anda tidak boleh menggunakan modul npm langsung untuk paket reaksi-asli Anda dan sebagai gantinya memiliki tarball. Jika itu masalahnya, Anda dapat menggunakan status reaksi-asli untuk memverifikasi versi RN Anda. :)
blakeface
15

Cukup buka Anda android/app/build.gradlelalu tambahkan ke dependenciesbagian:

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

/// versi reaksi asli dapat ditemukan di package.json

kunal sobat
sumber
5
di mana saya berubah untuk ios
Anurag Shrivastava
apa perubahan yang setara dalam package.json?
Nate Glenn
8

paksa paksa versi asli di file tingkat aplikasi tingkat Android Anda, di dependenciesbagian.

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

bekerja untukku

Shubham Goel
sumber
2
Ini berhasil untuk saya. Saya punya 0,53.3. Saya menambahkan pasukan dengan 0,53.3, restart terminal, berlari npm start -- --reset-cachedan berlarireact-native run-android
Florin Dobre
6

Saya belum pernah melihat kesalahan ini sebelumnya, tetapi setiap kali saya tidak bisa mendapatkan Xcode dan React-Native untuk bermain bersama dengan baik, saya melakukan beberapa hal. Periksa versi Xcode yang saya gunakan. Jika perlu diperbarui, saya memperbaruinya. Kemudian membersihkan penjaga dan cache adalah tempat kedua saya pergi. Saya tidak menggunakan perintah reset cache. Itu selalu mengatakan bahwa saya perlu memverifikasi cache, jadi saya lewati itu (Anda bisa melakukannya, saya hanya bingung). Saya menggunakan rm -rf $ TMPDIR / react- * untuk menyingkirkan semua cached cache. Jika itu tidak berhasil, saya mencoba untuk membangun aplikasi di Xcode, kemudian bekerja dengan cara saya dari sana, untuk membangunnya dengan run-ios asli-reaksi. Dengan pesan kesalahan ini, sepertinya Anda mungkin mulai dengan mencoba membuatnya dengan Xcode. Semoga itu bisa membantu ... beri tahu saya kemajuan Anda dengannya. Semoga berhasil! (Juga, Anda dapat memperbarui ke RN 0.

Jared Nelson
sumber
Hal lain adalah saya bermain-main dengan expo. Bertanya-tanya apakah itu mengacaukan segalanya
Sam Rao
Anda bisa saja menginstal npm --save [email protected] Tapi, saya akan mencoba membangunnya dengan Xcode terlebih dahulu. Sudahkah Anda melakukan itu? Jika Anda butuh bantuan, beri tahu saya.
Jared Nelson
6

Jika Anda menjalankan aplikasi React Native Anda melalui Expo, meningkatkan React Native bertanggung jawab untuk menyebabkan kesalahan ini (seperti yang tercantum di https://github.com/expo/expo/issues/923 ).

Jika itu skenario Anda, opsi Anda adalah:

  1. Bump Expo (yang terdaftar di Anda package.json) ke versi yang kompatibel dengan versi Asli Bereaksi Anda ( jika ada, yang mungkin tidak terjadi - dilihat dari masalah yang ditautkan, saya kira jejak dukungan Expo mengikuti rilis React Native).
  2. Buang perubahan Anda, hapus dan instal kembali modul Node Anda, Keluarkan dari Expo, dan kemudian (setelah memeriksa bahwa Anda masih dapat menjalankan aplikasi pasca-ejeksi) coba upgrade lagi.
Mark Amery
sumber
Expo hanya mendukung reaksi asli hingga 59,8 pada saat penulisan. Untuk kompatibilitas expo / reaksi asli, lihat docs.expo.io/versions/latest/sdk/overview/#sdk-version (ini bukan penyebab kesalahan yang sama persis dengan OP, tetapi tampaknya relevan untuk dicatat.)
Tijs Maas
6

Saya memiliki masalah ini untuk waktu yang lama dan tidak ada solusi di atas yang membantu. Saya sedang di tengah meningkatkan reaksi asli dalamcreate-react-native-app proyek sampai saya menemukan bahwa tidak semua versi Expo mendukung Asli React asli.

Menemukan halaman ini tertaut dalam dokumentasi yang menunjukkan kombinasi versi dari React Native, React, dan Expo yang didukung secara resmi:

Sumber: https://github.com/react-community/create-react-native-app/blob/master/VERSIONS.md

Mengedit file app.jsondan package.jsonuntuk mencocokkan versi yang sesuai dan menjalankan npm installsemuanya bekerja kembali.

Yatit Thakker
sumber
6

Saya menggunakan perangkat fisik, dalam kasus saya ini menyelesaikan masalah:

  1. Copot pemasangan aplikasi
  2. lsof -i :8081
  3. kill -9 PID
  4. Membangun kembali aplikasi ( react-native run-androidatau react-native run-ios)
ade_anugerah
sumber
Cukup dengan membunuh semua PID dari lsof -i :8081dan membangun kembali melakukannya untuk saya di iOS Simulator.
Ronan Boiteau
Hal yang sama di sini - mencoba Rimraf node_modules, mulai npm —reset-cache, dll - tidak ada yang berhasil. Kemudian saya lakukan seperti di atas - aplikasi yang dihapus, menggunakan taskkill / im node.exe dan taskkill / f / PID (angka yang diberikan pada langkah terakhir, dari PID yang ada), kemudian bereaksi dengan menjalankan asli-android. Berhasil!
user1641906
5

Dalam file build.gradle Anda tambahkan yang berikut ini

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

ganti 0.51.0dengan versi di package.json Anda

Phanse Nitish
sumber
4

Untuk pengembang Android yang tidak bisa memperbaikinya hanya dengan menutup dan membangun kembali, uninstall aplikasi secara manual pada emulator / perangkat.

Nadun Liyanage
sumber
3
Menghapus instalan aplikasi dari simulator iOS bekerja untuk saya.
negative_zero
4

Coba pasang dependensi lagi. Itu bekerja untuk saya

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

Aditi
sumber
3

Bagi saya itu karena react-nativeversi di dependencybagian package.jsonfile. Dulu:

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

Saya mengejar untuk:

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

Sekarang berfungsi dengan baik.

Seyed Morteza Mousavi
sumber
3

Untuk kasus saya, saya menghadapinya di iOS, dan saya sudah mencoba untuk mengatur ulang dan menghapus semua cache menggunakan perintah di bawah ini tetapi gagal juga, meskipun banyak komentar mengatakan bahwa penyebab utama adalah ada paket reaksi berjalan di suatu tempat secara tidak sengaja, saya telah memulai kembali mac saya dan masalahnya masih ada.

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

Solusinya adalah, untuk menghapus folder build @ /ios/build, kemudian jalankan react-native run-iosmenyelesaikannya

Ishak
sumber
3

Saya telah mencoba solusi di atas tetapi menambahkan ini ke AndroidManifest.xml tampaknya memperbaikinya.

  android:usesCleartextTraffic="true"
ketimaBU
sumber
1
Ini bekerja seperti pesona .. ini adalah alasan saya tidak akan pernah menyukai android .. Selalu ada kata ajaib yang memecahkan masalah Anda yang telah membuat Anda gila selama berjam-jam.
picacode
2

Untuk yang lain dengan masalah yang sama di iOS dengan CocoaPods:

Saya mencoba semua solusi di atas, tanpa hasil. Saya memiliki beberapa paket dengan dependensi asli dalam proyek saya, dan beberapa modul pod yang diperlukan sedang diinstal. Masalahnya adalah bahwa Bereaksi ditentukan di Podfile saya, tetapi Bereaksi pod tidak secara otomatis ditingkatkan dengan menggunakanreact-native-git-upgrade .

Cara mengatasinya adalah memutakhirkan semua pod yang diinstal, dengan menjalankan cd ios && pod install.

brkn
sumber
2

Dalam kasus saya, memasang perangkat virtual baru membantu. Sekarang saya menggunakan 1 perangkat per aplikasi.

Luminita Balas
sumber
2

Pengguna pameran - pastikan app.jsonversi SDK dan package.jsonversi pameran Anda (mungkin sama) kompatibel satu sama lain.

cherankrish
sumber
Terima kasih! Ini adalah solusi untuk pengguna pameran baru.
Jasper Blues
1

Saya juga mengalami masalah ini menggunakan Expo dan iOS Simulator. Apa yang berhasil bagi saya adalah menghapus Simulator diHardware > Erase All Content and Settings...

Catico
sumber
Saya cukup yakin bahwa ini dapat dicapai dengan hanya menghapus aplikasi Expo dari emulator. Tidak perlu segalanya.
Ajay
1

Kemungkinan Perbaikan:

  1. Hapus package-lock.json
  2. Lari: watchman watch-del-all && rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf node_modules/&& npm install

Jika masalah berlanjut, coba jalankan proyek langsung dari Xcode

Ini berhasil untuk saya.

Alejo
sumber
1

Dalam kasus saya (TIDAK menggunakan expo & Android build)

package.json

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

Dan app.json

{
  "sdkVersion": "27"
}

menyelesaikan masalah

Ajitsen
sumber
Ini benar terutama jika Anda menggunakan Expo. Lihat dokumen peningkatan Expo untuk info lebih lanjut: docs.expo.io/versions/latest/workflow/…
blakeface
1

Saya mencoba untuk membangun dan menjalankan aplikasi React Native dari WebStorm dan mengalami masalah ini. Solusi sederhana bagi saya adalah:

watchman watch-del-all

Di macOS, jika watchmanbelum diinstal, instal menggunakan Homebrew :

brew install watchman
friederbluemle
sumber
1

Itu terjadi kadang-kadang ketika Anda mencoba untuk menjalankan tanpa menutup server simpul, di mana aplikasi sebelumnya sedang berjalan, jadi coba mulai ulang React. Untuk melakukannya, jalankan saja perintah berikut:

1. To kill current processes
killall node -9 

2. To Start React  Native
react-native start 

3. Then Run android
react-native run-android
civani mahida
sumber
1

Dalam kasus saya, saya mengubah expoversi secara manual. Saya mendapat masalah yang sama karena saya lupa memperbarui sdkVersion di app.json dan babel-preset-expo di package.json

Setelah itu jalankan: expo r -cuntuk menghapus cache dan memulai aplikasi.

Giang Phan
sumber
1

Perbaikan yang kami lakukan adalah memastikan variabel ANDROID_HOME dan PATH telah diatur sebelum pembuatan.

Pertama, jalankan dua perintah di bawah ini kemudian buat aplikasi untuk perangkat.

export ANDROID_HOME=/Users/username/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Saif Kamaal
sumber
1

Saya mendapat klasifikasi ini ketika definisi tipe TypeScript tidak cocok.

EG react-nativedi 0.61.5 in dependenciesdan @types/react-native0.60.0 indevDependencies .

Segera setelah saya memperbarui devDependencies itu berfungsi. Tidak perlu me-restart apa pun.

Thomas Hagström
sumber
0

Ini bukan perbaikan, tetapi dalam kasus saya, saya memiliki beberapa aplikasi RN yang diinstal pada perangkat saya dan tanpa sadar saya mencoba untuk 'Muat Ulang` dari dalam aplikasi yang salah. (Saya sedang mengembangkan dua aplikasi secara bersamaan saat ini) Jadi pastikan Anda berada di aplikasi yang benar!

Robot Ramah
sumber
0

Coba ubah versi asli-reaksi Anda yang ditentukan dalam package.json Anda (di bawah dependensi - asli-reaksi) menjadi sama dengan 'Versi Asli' yang ditunjukkan dalam pesan kesalahan. Kemudian jalankan 'npm install' lagi.

Pnar Sbi Wer
sumber
tahu cara menurunkan versi ke yang disebutkan dalam package.json?
HungrySoul
di package.json Anda, Anda akan melihat sesuatu seperti "react-asli": "^ 0,55.0" di bawah "dependensi". Ubah nomor itu (0,55.0 dalam contoh ini) ke versi yang Anda inginkan dan jalankan "npm install" lagi.
Pnar Sbi Wer
0

Saya mendapatkan masalah yang sama ketika membangun aplikasi asli reaksi saya untuk android dan saya melakukan hal berikut yang bekerja untuk saya.

"JavaScript versi 0.50.1" di konsol kesalahan adalah versi asli-reaksi dalam package.jsonfile Anda . Pastikan itu adalah versi yang sama dengan "Versi asli 0.50.0" di konsol kesalahan.

  1. Saya telah memperbarui versi reaksi asli ke "Versi Asli 0.50.0" seperti yang diminta di konsol kesalahan.
  2. Bangun kembali aplikasi react-native run-android.
Anand Yadav
sumber
0

Pastikan juga bahwa wifi diaktifkan di emulator Anda

G. Adnane
sumber
0

Buka proyek / android / aplikasi / build.gradle

Mencoba:

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

Alih-alih mengkompilasi "com.facebook.react: react-native: 0.51.0" {force = true}

Ref: Tautan

Khurshid Ansari
sumber