【问题标题】:react native java.lang.ExceptionInInitializerError反应原生 java.lang.ExceptionInInitializerError
【发布时间】:2017-11-09 00:50:29
【问题描述】:

我正在尝试让 React Native 在模拟器上运行。我正在使用 Genymotion,它工作正常,虚拟机打开没有任何问题,我已将 SDK 添加到其配置中。

我打开了模拟器并可以正常工作,但是当我运行 react-native run-android 时出现以下错误。

Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

What went wrong:
java.lang.ExceptionInInitializerError (no error message)

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 9 而 React Native 需要 java 8 (https://github.com/facebook/react-native/issues/11755)

所以我做了以下

我尝试通过这样做来更改版本 sudo update-java-alternatives --set java-8-oracle

然后检查版本 javac -version

它返回 javac 1.8.0_131

如果我再次运行该应用程序,我仍然会从上面收到错误

但是当我回显 $PATH 时,我看到它仍在引用 java 9 文件夹

echo $PATH /home/andrei/.nvm/versions/node/v7.5.0/bin:/home/andrei/bin:/home/andrei/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-9-oracle/bin:/usr/lib/jvm/java-9-oracle/db/bin:/home/andrei/Android/Sdk

我该如何改变或解决这个问题?

【问题讨论】:

  • 如果在 Ubuntu 上发生这种情况,它与 Android 有什么关系?
  • 嗯,我使用的是安卓模拟器,它需要运行 java 。我标记了 android,因为我正在尝试构建一个 android 开发环境
  • 意味着应用程序在 Android 设备上崩溃了,因此它与 ubuntu 无关。
  • 不,它甚至没有在 android 上运行它在尝试编译我猜的代码时崩溃了
  • Compile = IDE,与操作系统无关。如果应用程序在 Ubuntu 操作系统上运行时崩溃,这将导致使用 ubuntu 对其进行标记

标签: java react-native android-emulator react-native-android


【解决方案1】:

解决这个问题

但是当我回显 $PATH 时,我发现它仍在引用 java 9 文件夹 echo $PATH /home/andrei/.nvm/versions/node/v7.5.0/bin:/home/andrei/bin:/home/andrei/.local/bin:/usr/local/sbin:/usr/local/ bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-9-oracle/bin: /usr/lib/jvm/java-9-oracle/db/bin:/home/andrei/Android/Sdk

在 Home 目录中打开 .profile

添加以下内容

PATH="$PATH:~/usr/lib/jvm/java-8-openjdk-amd64/bin"

在这种情况下,我将添加 java 8 文件夹的路径,因为这是我需要根据其规范使用 React-Native 的路径 https://facebook.github.io/react-native/docs/getting-started.html

设置 PATH 后,您需要使用以下脚本使其在终端内可用,您正在执行 react-native 应用程序

来源.~/.profile

这应该会让你通过 java 9 的最初问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 2021-11-07
    • 2021-05-03
    • 2018-03-30
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多