【问题标题】:Failed to notify project evaluation listener > javax/xml/bind/annotation/XmlSchema无法通知项目评估侦听器 > javax/xml/bind/annotation/XmlSchema
【发布时间】:2018-05-02 03:08:23
【问题描述】:

我尝试首先使用 react-native run-android 运行一个 react-native 应用程序。我希望它能够工作,就像我打电话给react-native run-ios 时一样。 堆栈上有很多用户出现相同类型的错误,“无法通知项目评估侦听器”。

观察到的行为

> react-native run-android
Scanning folders for symlinks in /Users/tiagogouvea/www/go-along/mobile/node_modules (12ms)
JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.gradle.internal.reflect.JavaMethod (file:/Users/tiagogouvea/.gradle/wrapper/dists/gradle-4.0-milestone-1-all/2rnr7rhi2zsmkxo9re7615fy6/gradle-4.0-milestone-1/lib/gradle-base-services-4.0.jar) to method java.lang.ClassLoader.getPackages()
WARNING: Please consider reporting this to the maintainers of org.gradle.internal.reflect.JavaMethod
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/tiagogouvea/Library/Android/sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > javax/xml/bind/annotation/XmlSchema

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 4s
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

环境

  • npm ls react-native-scripts:空
  • npm ls react-native: react-native@0.50.3
  • npm ls expo:空
  • node -v: v8.0.0
  • npm -v:5.5.1
  • yarn --version:1.2.1
  • watchman version: 4.9.0

    1. 操作系统:macOS 10.12.6
    2. 手机/模拟器/模拟器和版本:Genymotion 图像

【问题讨论】:

    标签: android android-studio gradle react-native android-sdk-tools


    【解决方案1】:

    正如 OP 提交的对 bug 的评论中所述,Gradle 似乎在 Java 9 或更高版本上存在问题。

    你需要安装 JDK 8(JRE 不够用,8 以后的版本不行)并告诉 Gradle 使用它,而不是你系统上默认的 Java 版本。

    就我而言(运行 Ubuntu 18.04),这需要安装 openjdk-8-jdk(我已经有 JDK 11 和 JRE 8,但没有 JDK 8)。

    您有多种方式告诉 Gradle 使用 JDK 8(在所有示例中,将路径替换为 JDK 安装的实际路径;此处显示的一种适用于 Ubuntu 18.04 amd64):

    1. 使用选项运行 Gradle

      -Dorg.gradle.java.home=/usr/lib/jvm/java-8-openjdk-amd64
      
    2. 确保~/.gradle/gradle.properties 包含该行

      org.gradle.java.home=/usr/lib/jvm/java-8-openjdk-amd64
      
    3. 在您的build.gradle 中包含以下几行:

      compileJava.options.fork = true
      compileJava.options.forkOptions.executable = /usr/lib/jvm/java-8-openjdk-amd64
      

    这帮助我在不同的项目中摆脱了同样的错误。

    【讨论】:

    • 其实那个issue是我打开的。但是,我没有机会回到那个代码并尝试它。我相信那里的cmet已经足够了,谢谢你在这里回答。
    【解决方案2】:

    其实我是在运行Java 9,运行java --version给了我一个:

    $: java --version java 9 Java(TM) SE Runtime Environment (build 9+181) Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

    彻底解决我做到了:

    1) 删除 Java 9:

    sudo rm -rf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"  
    sudo rm -rf "/Library/PreferencePanes/JavaControlPanel.prefPane"  
    sudo rm -rf "~/Library/Application Support/Java"
    

    2) 安装回 Java 8 - download here

    3) 将 JAVA_HOME 行添加到我的 bashfile (~/.bash_profile):

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

    * 注意路径上使用正确的jdk版本

    而且,现在一切正常。感谢@user149408 的帮助!

    【讨论】:

    • 有必要删除java 9吗?如何安装您想要的版本并更新环境变量。这样您就不必重新安装其他版本以备不时之需。
    【解决方案3】:

    我已通过清理所有 Gradle 缓存、停止 Gradle 守护进程并使用以下命令成功创建新版本来解决此问题。确保你的当前目录是 android。

    rm -rf ~/.gradle/caches && ./gradlew --stop && ./gradlew cleanBuildCache && ./gradlew bundleRelease
    

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      相关资源
      最近更新 更多