React Native错误:“无法确定'9.0.1'中的java版本。”

时间:2017-10-21 19:48:20

标签: react-native gradle

我正在使用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

有关如何解决这个问题的想法吗?

11 个答案:

答案 0 :(得分:176)

PROJECT_PATH/android/gradle/wrapper/gradle-wrapper.properties文件中,将distributionUrl 更新为以下内容:

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

参见相关的gradle distributions documentation

答案 1 :(得分:24)

实现此错误的最快方法是使用JDK 8.除非您确实需要使用JDK9。

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

不要忘记将您的环境变量JAVA_HOME更改为新的JDK版本!

答案 2 :(得分:15)

确保您已安装JDK8,然后将JAVA_HOME设置为JDK8

例如:

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

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

答案 3 :(得分:7)

在MacOS上,我运行了以下命令:

brew cask uninstall java
brew tap caskroom/versions
brew cask install java8

答案 4 :(得分:6)

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 

答案 5 :(得分:3)

我遇到了这个错误,但是对于Java的最新版本-10.0.2。

要解决我的错误,我按照了@Blacktoviche在此Github问题中提到的步骤:https://github.com/facebook/react-native/issues/17688

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

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

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

希望这对某人有帮助!

答案 6 :(得分:2)

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 download page

答案 7 :(得分:1)

在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

答案 8 :(得分:1)

我通过将JDK降级为8来解决此问题。

答案 9 :(得分:0)

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

答案 10 :(得分:0)

当我忘记使用Android Studio构建项目时,通常会出现此错误。一个简单的同步和升级Gradle就可以完成工作。