React Nativeバージョンの不一致


196

新しいプロジェクトを初期化してからXcodeエミュレーターを起動すると、次のメッセージが表示されます。

React-Nativeバージョンの不一致

Javascriptバージョン0.50.1ネイティブバージョン:0.50.0

ネイティブコードをリビルドしたことを確認してください。...

誰かがここで何が起こっているのか知っていて、私を助けることができますか?

回答:


337

これは私がそれでやったことです:

すべてのターミナルを閉じて、ビルドを再度実行します。

別のプロジェクトからnodejsターミナルを閉じるのを忘れると、異なるバージョンの反応がインストールされていることがあります。

したがって、nodejsサーバーからフェッチするコードは、ネイティブコードと競合します。


1
現在開いているターミナルを閉じたくない場合はどうしますか(そこでアプリを実行しています)?別の回避策はありますか?
Dimitar Tsonev

1
@DimitarTsonevを実行すると、react-nativeによって開かれた特定のターミナルを閉じることができますBundling 'index.android.js' 100.0% (1/1), done
ヴァル

1
動作中の反応依存関係バージョンを完全に使用することを強制しbuild.gradleます。@Valに感謝
ジェイクオリバー2018年

すべてのターミナルを閉鎖して使用した:react-native run-ios
Steffo Dimfelt

pod installココアポッドを使用している場合にも実行されます。
アレイ

37

create-react-native-appを使用してreact-nativeアプリを作成した場合。app.json(expo)が必要です。そして、package.jsonファイルで、expoバージョンが一致するかどうかを確認し、それに応じて変更します。たとえば、私の場合の問題は、app.jsonファイルでexpo sdkVersion属性のバージョンが25.0.0だったので、それを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.gradledependenciesセクションに追加してください:

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

///反応ネイティブバージョンはpackage.jsonにあります


5
どこでiosを変更しますか
Anurag Shrivastava '28

package.jsonの同等の変更は何ですか?
ネイトグレン

8

dependenciesセクションのAndroidのアプリレベルのGradleファイルでネイティブバージョンを強制的に反応させるだけです。

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でアプリをビルドしてから、そこから自分のやり方で、react-native run-iosを使用してビルドします。このエラーメッセージは、Xcodeでビルドしようとすることから始まるようです。お役に立てれば幸いです。進捗状況をお知らせください。幸運を!(また、RN 0に更新することもできます。


もう一つは、エキスポで遊んだことです。それが台無しになってしまうのではないか
Sam Rao

npm install --save react-native@0.51を実行するだけで済みますが、最初にXcodeでビルドしてみます。もうやりましたか?サポートが必要な場合はお知らせください。
Jared Nelson

6

Expoを介してReact Nativeアプリを実行している場合、React Nativeをアップグレードすると、このエラーが発生する可能性があります(https://github.com/expo/expo/issues/923に記載されています)。

それがあなたのシナリオである場合、オプションは次のとおりです。

  1. (自分の中にリストされているバンプエキスポpackage.jsonあなたのリアクトネイティブバージョンと互換性のあるバージョンに)(場合 1が当てはまらないことがある、存在する-リンクの問題により判断すると、私の図は、万博のサポートコースはネイティブのリリースを反応します)。
  2. 変更を破棄し、Nodeモジュールを削除して再インストールし、Expoから取り出します。次に、(取り出し後も引き続きアプリを実行できることを確認した後)アップグレードを再試行します。

Expoは、執筆時点で最大59.8までの反応ネイティブをサポートしています。博覧会のために/反応し、ネイティブの互換性を参照してくださいdocs.expo.io/versions/latest/sdk/overview/#sdk-versionを (それはOPのようにエラーの正確な同じ原因ではないですが、ノートに関連すると思われる。)
Tijsマース

6

私はこの問題を最も長く抱えていましたが、上記の解決策のどれも役に立ちませんでした。create-react-native-appExpoのすべてのバージョンが最新のReact Nativeをサポートしているわけではないことが判明するまで、私はプロジェクトのreactネイティブをアップグレードする途中でした。

React Native、React、Expoのどのバージョンの組み合わせが正式にサポートされているかを示すドキュメントにリンクされているこのページを見つけました。

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

app.jsonpackage.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シミュレーターでそれができました。
Ronan Boiteau

ここでも同じです-Rimraf node_modules、npm start —reset-cacheなどを試しました-何も機能しませんでした。次に、上記のようにしました-アプリをアンインストールし、taskkill / im node.exeとtaskkill / f / PID(最後の手順で指定した番号、既存のPIDの番号)を使用してから、react-native run-androidを実行しました。御馳走を働いた!
user1641906

5

build.gradleファイルに次を追加します

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

0.51.0package.jsonのバージョンに置き換えます


4

閉じて再構築するだけでは修正できないAndroid開発者の場合、エミュレーター/デバイスでアプリを手動でアンインストールします。


3
IOSシミュレーターからアプリをアンインストールするとうまくいきました。
negative_zero

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

私はそれを追いかけました:

"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

解決策は、ビルドフォルダー@を削除し/ios/build、それを実行してreact-native run-ios解決することです


3

上記の解決策を試しましたが、これをAndroidManifest.xmlに追加すると解決するようです。

  android:usesCleartextTraffic="true"

1
それは魅力のように働きました..これが私がアンドロイドを好きにならない理由です..何時間もあなたを夢中にさせてきたあなたの問題を解決する魔法の言葉が常にあります。
picacode

2

CocoaPodsを使用するiOSで同じ問題が発生する他のユーザー向け:

私は運が悪ければ上記の解決策をすべて試しました。プロジェクトにネイティブ依存関係のあるパッケージがいくつかあり、それらのいくつかは必要なポッドモジュールがインストールされています。問題は、私のPodfileでReactが指定されていることですが、Reactポッドが次のコマンドを使用して自動的にアップグレードされませんでした。react-native-git-upgrade

修正は、を実行して、インストールされているすべてのポッドをアップグレードすることcd ios && pod installです。


2

私の場合、新しい仮想デバイスのインストールが役立ちました。現在、アプリごとに1つのデバイスを使用しています。


2

Expoユーザーapp.json-SDKバージョンとExpo package.jsonバージョンが相互に互換性があることを確認します(同等である場合があります)。


ありがとうございました!これは新しいエキスポユーザーのためのソリューションでした。
ジャスパーブルース

1

ExpoとiOSシミュレータを使用してこの問題も発生しました。私のために働いたのは、シミュレータを消去することでした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

私の場合(expoとAndroidビルドは使用していません)

package.json

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

そしてapp.json

{
  "sdkVersion": "27"
}

問題を解決しました


Expoを使用している場合は特にそうです。詳細は万博のアップグレードドキュメントをチェックアウト:docs.expo.io/versions/latest/workflow/...
blakeface

1

WebStormからReact Nativeアプリをビルドして実行しようとしていたところ、この問題が発生しました。私にとっての簡単な解決策は:

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バージョンを手動で変更しました。app.jsonのsdkVersionとupdate in babel- preset -expoを更新するのを忘れたため、同じ問題が発生しました package.json

その後、expo r -cキャッシュをクリアしてアプリを起動します。


1

私たちが行った修正は、ビルドの前にANDROID_HOMEおよびPATH変数が設定されていることを確認することでした。

まず、以下の2つのコマンドを実行してから、デバイス用のアプリをビルドします。

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-native0.60.0でのdevDependencies

devDependenciesを更新するとすぐに機能しました。何も再起動する必要はありませんでした。


0

これは修正ではありませんが、私の場合、デバイスに複数のRNアプリがインストールされていて、知らないうちに間違ったアプリケーションから「リロード」しようとしました。(現時点では2つのアプリを同時に開発しています)したがって、正しいアプリケーションにいることを確認してください!


0

package.jsonで指定されたreact-nativeのバージョンを(依存関係の下で-react-nativeに)変更して、エラーメッセージに表示される「ネイティブバージョン」と同じものに変更してみてください。次に、「npm install」を再度実行します。


package.jsonに記載されているバージョンにダウングレードする方法はありますか?
HungrySoul 2018年

package.jsonでは、「依存関係」の下に「react-native」:「^ 0.55.0」のようなものが表示されます。その番号(この例では0.55.0)を目的のバージョンに変更し、「npm install」を再度実行します。
Pnar Sbi Wer、2018

0

Android用の反応ネイティブアプリをビルドしているときにも同じ問題が発生し、次のように動作しました。

エラーコンソールの「JavaScriptバージョン0.50.1」は、package.jsonファイル内の反応ネイティブバージョンです。エラーコンソールの「ネイティブバージョン0.50.0」と同じバージョンであることを確認してください。

  1. エラーコンソールのプロンプトに従って、react-nativeバージョンを「Native Version 0.50.0」に更新しました。
  2. アプリを再構築しreact-native run-androidます。


0

projectdir / android / app / build.gradleを開きます

試してください:

compile( "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.