React Nativeエラー:「 '9.0.1'からJavaバージョンを判別できませんでした。」


108

私はMacOSに取り組んでいreact-nativeます。

始めるための最初のステップの1つは、実行することです:react-native run-androidまたはreact-native run-ios。しかし、私はこのエラーを得ています:

react-native run-android

結果:

Scanning folders for symlinks in /Users/ric/myprojs/albums/node_modules (6ms)
Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '9.0.1'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

これは私が実行したときに得られるものですjava --version

java --version

結果:

java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
mbp:albums ric$ java --version
java 9.0.1
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

編集する

私のjavacバージョン:

javac --version

結果:

javac 9.0.1

これを修正する方法について何か考えはありますか?


2
javac -versionターミナルでも実行できますか
bennygenel 2017年

1
この問題は少し古いが、JavaバージョンまたはGradleに関連している可能性があることを発見しました。
bennygenel 2017年

回答:


205

あなたにはPROJECT_PATH/android/gradle/wrapper/gradle-wrapper.properties、ファイル、あなたを更新しdistributionUrl、次へ:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-all.zip

関連するGradleディストリビューションのドキュメントを参照してください


4
app-folder / android / gradle / wrapper / gradle-wrapper.propertiesにある
Muhammad Adeel

6
Gradleバージョンをあなたの提案に変更した後、別のエラーが発生します:クラスcom.android.sdklib.repository.AndroidSdkHandlerを初期化できませんでした
leMale

7
なぜこれが役立つのですか?新しいアプリケーションを初期化するとき、React-Nativeはデフォルトでgradle-2.14.1を使用するので、なぜ別のアプリケーションが必要なのですか?
Waltari 2017年

11
これを追加した後にこのエラーが発生する> javax / xml / bind / annotation / XmlSchema
Milon

15
Gradleの最新バージョンを使用する必要があります。たとえば、Java 11をサポートするには次のように使用できますgradle-4.10-all.zip
Andrey Kolpakov

24

このエラーを回避する最も速い方法は、JDK 8を使用することです。ただし、本当にJDK9を使用する必要がある場合を除きます。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

環境変数JAVA_HOMEを新しいJDKバージョンに変更することを忘れないでください!


1
スイッチのJavaバージョンへの関連リンクstackoverflow.com/questions/21964709/...
Akshayビジェイジャイナ

15

JDK8インストールし、次に設定JAVA_HOMEしたことを確認してくださいJDK8

例えば:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

または、.bash_*ファイルを使用してこの変数を設定します


1
Macの.zshrcにこれがありました。Javav8 の最新のインストール済みバージョンexport JAVA_HOME=$(/usr/libexec/java_home)export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)選択するように変更し、この同じ問題を修正しました。
グレッグヘイグッド2018

8
vi ~/.bash_profile

次に、次の行を追加します。

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

現在のシェルで上記の変更を有効にするファイルを入手します。

source ~/.bash_profile 

1
この最後の行export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)は私にとって問題を解決しました-ありがとう!
JohnSalzarulo、

7

MacOSでは、次のコマンドを実行しました。

brew cask uninstall java
brew tap caskroom/versions
brew cask install java8 "or just brew cask install java to install latest version"

3

このエラーが発生していましたが、Javaの最新バージョン-10.0.2の場合。

私のエラーを修正するために、私@BlacktovicheはこのGithubの問題で言及されている手順に従いました:https : //github.com/facebook/react-native/issues/17688

androidAndroid Studioを介してプロジェクト内のフォルダーを開くと、でプロンプトが表示されましたAndroid Gradle plugin update recommended。当時、私はをクリックするように指示する少し時代遅れのチュートリアルに従っていましたDon't remind me again for this project

ただし、@Blacktoviche上記のgithubの問題で推奨されているように、Gradleプラグインを更新する必要がある場合があります。更新後、クリックする必要もありましたInstall Build Tools 27... and sync project(正確なバージョンを覚えていません)。

これらの手順を実行した後、reactネイティブアプリをAndroid Studioエミュレーターで正常に実行できました。

これが誰かを助けることを願っています!


1

---- 2018年12月---注意してください--- React Nativeは、8以上のバージョンのJavaでは機能しないため、9.0.1バージョンをアンインストールする必要があります。そのためには、次のコマンドを実行します。

cd /Library/Java/JavaVirtualMachines/
ls -l

Javaバージョンを含むフォルダーを特定し、それを削除します

sudo rm -rf jdk.x.x_xxx.jdk

その後、再度oracleからjava 8をダウンロードしてインストールできます。jdk8ダウンロードページを参照してください


「React Nativeは8以降のバージョンのJavaでは機能しません」は完全に正しくありません。現在、JDK 13でビルドを実行しています。
イアン・ケンプ

私の答えは2018年12月からです。2018年からReact Nativeを入手し、JDK 13で実行します。動作する場合は、ここにアクセスして回答を更新してください。
ギルヘルメフェレイラ

0

Windowsを使用している場合。jdkパスを環境パス変数に追加してください。次に、reactネイティブプロジェクトからandroidフォルダーをandroid studioに開きます。必要なものを自動的に更新します。


0

Android Studioを使用してプロジェクトをビルドし忘れたときに、通常このエラーが発生します。単純な同期とGradleのアップグレードが機能します。



0

Ubuntuでは、ターミナルで次のコマンドラインを実行する必要があります。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.