React Native错误:“无法从'9.0.1'确定Java版本。”


108

我正在MacOS上工作,只是从开始react-native

开始的第一步就是运行:react-native run-androidreact-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 17-10-21

1
我发现这个问题有点老,但可能与Java版本或gradle有关。
bennygenel '17

Answers:


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

11
添加此> javax / xml / bind / annotation / XmlSchema后收到此错误
Milon

15
您需要使用最新版本的Gradle。例如,要支持Java 11,您可以使用gradle-4.10-all.zip
Andrey Kolpakov,


15

确保已JDK8安装,然后设置JAVA_HOMEJDK8

例如:

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

或使用.bash_*文件设置此变量


1
我在Mac上的.zshrc中具有此功能: export JAVA_HOME=$(/usr/libexec/java_home) 将其更改为export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)选择最新安装的Java v8版本,并解决了相同的问题。
格雷格·海古德

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)

现在获取文件以使上述更改在当前shell中生效:

source ~/.bash_profile 

1
最后一行为export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)我解决了问题-谢谢!
JohnSalzarulo


3

我收到此错误,但使用的是Java的最新版本-10.0.2。

为了解决我的错误,我遵循了@BlacktovicheGithub问题中提到的步骤:https : //github.com/facebook/react-native/issues/17688

当我android通过Android Studio在项目内打开文件夹时,系统提示我Android Gradle plugin update recommended。当时,我正在遵循一个过时的教程,该教程告诉我单击Don't remind me again for this project

但是,按照@Blacktoviche上面链接的github问题中的建议,有时有必要更新Gradle插件。更新后,我还必须单击Install Build Tools 27... and sync project(我不记得确切的版本)。

完成这些步骤后,我便能够在Android Studio模拟器上成功运行我的react native应用。

希望这对某人有帮助!


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上运行的构建。
伊恩·肯普

我的答案来自DEC2018。从2018年开始获取React Native,然后在JDK 13上运行,如果可以运行,请在此处更新您的答案。
Guilherme Ferreira

0

如果您使用的是Windows;确保将jdk路径添加到Environment路径变量。然后从您的本机项目打开您的android文件夹到android studio中。它将自动为您更新必要的内容。




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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.