Не удалось уведомить слушателя оценки проекта › javax/xml/bind/annotation/XmlSchema

Я пытаюсь сначала запустить реагирующее приложение с помощью react-native run-android. Я ожидаю, что это сработает, как это происходит, когда я вызываю 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: реагировать-родной@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. Operating system: macOs 10.12.6
    2. Телефон/эмулятор/симулятор и версия: изображение Genymotion

person Tiago Gouvêa    schedule 18.11.2017    source источник


Ответы (2)


Как упоминалось в комментарии к ошибке, поданной OP , у 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
    

Это помогло мне избавиться от той же ошибки в другом проекте.

person user149408    schedule 18.06.2018
comment
На самом деле, этот вопрос открыт мной. Но у меня нет возможности вернуться к этому коду и попробовать его. Я считаю, что комментариев там достаточно, и спасибо, что ответили здесь. - person Tiago Gouvêa; 20.06.2018

На самом деле я запускал 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 - скачать здесь

3) В мой bashfile (~/.bash_profile) добавлена ​​строка JAVA_HOME:

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

* Обратите внимание на использование правильной версии jdk в пути

И теперь все работает нормально. Спасибо за помощь @user149408!

person Tiago Gouvêa    schedule 16.08.2018
comment
Нужно ли удалять java 9? Как насчет установки нужной версии и обновления переменных среды. Таким образом, вам не придется переустанавливать другую версию, если она вам понадобится. - person geneowak; 07.01.2020