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?

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.


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
  }
}

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


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


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.


Hal lain adalah saya bermain-main dengan expo. Bertanya-tanya apakah itu mengacaukan segalanya
Sam Rao

Anda bisa saja menginstal npm --save react-native@0.51 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.

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.


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)

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


4

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


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


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.


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


3

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

  android:usesCleartextTraffic="true"

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.


2

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


2

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


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...


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.


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


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

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

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.


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

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.


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!


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.


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.


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.