【问题标题】:React Native error: "Could not determine java version from '9.0.1'."React Native 错误:“无法从 '9.0.1' 确定 java 版本。”
【发布时间】:2018-04-02 16:55:43
【问题描述】:

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

知道如何解决这个问题吗?

【问题讨论】:

  • 你也可以在终端运行javac -version
  • 我发现 this issue 有点旧,但可能与 java 版本或 gradle 有关。

标签: react-native gradle


【解决方案1】:

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

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

查看相关gradle distributions documentation

【讨论】:

  • 应该在 app-folder/android/gradle/wrapper/gradle-wrapper.properties
  • 在我将 gradle 版本更改为您的建议后,它给了我另一个错误:无法初始化类 com.android.sdklib.repository.AndroidSdkHandler
  • 为什么这有帮助? React-Native 在你初始化一个新应用时默认使用 gradle-2.14.1,那为什么我们需要一个不同的呢?
  • 添加后出现此错误> javax/xml/bind/annotation/XmlSchema
  • 您需要使用最新版本的 Gradle。例如,要支持 Java 11,可以使用gradle-4.10-all.zip
【解决方案2】:

真正解决此错误的最快方法是使用 JDK 8。除非您确实需要使用 JDK9。

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

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

【讨论】:

【解决方案3】:

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

例如:

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

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

【讨论】:

  • 我在 mac 上的 .zshrc 中有这个:export JAVA_HOME=$(/usr/libexec/java_home) 将其更改为 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 会选择最新安装的 Java v8 版本,并修复了同样的问题。
【解决方案4】:
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 

【讨论】:

  • 最后一行 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 为我解决了问题 - 谢谢!
【解决方案5】:

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

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

【讨论】:

    【解决方案6】:

    我收到了这个错误,但是对于更新版本的 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

    然而,正如@Blacktoviche 在上面链接的 github 问题中建议的那样,有时需要更新 Gradle 插件。更新后还得点Install Build Tools 27... and sync project(具体版本不记得了)。

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

    希望这对某人有所帮助!

    【讨论】:

      【解决方案7】:

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

      【讨论】:

      • “React Native 不适用于高于 8 的 Java 版本”绝对不正确。我现在有一个运行 JDK 13 的构建。
      • 我的答案来自 2018 年 12 月。从 2018 年开始获取 React Native,然后在 JDK 13 上运行,如果它可以运行,请来这里更新你的答案。
      【解决方案8】:

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

      【讨论】:

        【解决方案9】:

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

        【讨论】:

          【解决方案10】:

          我通过将 JDK 降级到 8 来解决这个问题。

          【讨论】:

            【解决方案11】:

            在 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
            

            【讨论】:

              猜你喜欢
              • 2018-04-04
              • 2018-12-15
              • 2018-05-06
              • 2018-10-05
              • 2021-05-31
              • 1970-01-01
              • 1970-01-01
              • 2023-04-10
              相关资源
              最近更新 更多