ОШИБКА: сбой сборки с исключением.

* Что пошло не так:
Не удалось выполнить задачу ': react-native-linear-gradient: compileDebugJavaWithJavac'.
> Не удалось найти tools.jar. Убедитесь, что / Library / Internet Plug-Ins / JavaAppletPlugin.plugin / Contents / Home содержит допустимую установку JDK.

Когда я обновился до Mac OS Big sur и запустил,

npx react-native run-android

Получил эту ошибку (Android). Я пробовал много решений из Stack Overflow, но ни одно из них не помогло.

Я создал новый проект, и он работает. Также отлично работают некоторые из старых проектов.

*react-native Version: "0.63.3",*

Помогите, пожалуйста, найти решение?

Ответы (21)

Проблема в том, что с обновлением встроенная java имеет приоритет, и у нее нет SDK, потому что это просто среда выполнения.

Вам просто нужно изменить свой дом Java и добавить двоичный файл Java в свой .zshrc чтобы найти свой домашний Java, выполните:

/usr/libexec/java_home -V | grep jdk

вывод должен быть похож на следующий:

Matching Java Virtual Machines (1):
1.8.0_272 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

вы должны выбрать путь от того, который говорит SDK в моем случае

/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

после этого вы просто добавляете следующее в конец вашего .zshrc, который должен быть у вас дома.

Вы можете редактировать его с помощью (если вы решите использовать vim, вы можете выйти, написав: wq! И нажав Enter)

vim .zshrc

добавьте следующее:

export JAVA_HOME=the/path/you/copied/before
export PATH=$JAVA_HOME/bin:$PATH

где / путь / вы / скопировал / раньше в моем случае будет

/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

сохраните файл, закройте все ваши терминалы и снова откройте их.

Если при редактировании файла .zshrc появляется ошибка ".zshrc" E212: Не удается открыть файл для записи затем используйте sudo vim.zshrc, и вы сможете редактировать.

Ошибка должна быть устранена.

Редактировать

Вместо ~ / .zshrcвы можете иметь ~ / .bash_profile или ~ / .bash_rc, так что отредактируйте свой

Перейти к папке Android -> gradle.properties -> добавьте свой путь java sdk, как показано ниже

org.gradle.java.home=/Users/userName/Library/Java/JavaVirtualMachines/corretto-1.8.0_302/Contents/Home/jre

Переустановка java jdk у меня сработала.

в Терминале:

brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8

У меня это сработало: запустите Java из новой установки.

sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/Java/JavaVirtualMachines
sudo rm -rf /Library/Application\ Support/Oracle/Java/
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane

Перезагрузите компьютер.

Загрузите и установите Java jdk-8u271-macosx-x64

Перезагрузите компьютер.

на моем Mac Big Sur SSD, помогла простая загрузка jdk

У меня сработало обновление Android Studio

Это сработало для меня -

  1. Перейти к папке android> файл gradle.properties> добавить строку ниже org.gradle.java.home = / Applications / Android Studio.app/Contents/jre/jdk/Contents/Home // путь к JDK

  2. Снова запустите свой проект

В моем случае:

Я использовал команду / usr / libexec / java_home -V | grep jdk Cristian Gomez предоставлено, есть два пути:

Matching Java Virtual Machines (2):
    1.8.181.13 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_111 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

Замена .zshrc не решила проблему.

Наконец, я скопировал tools.jar в / Library / Java / JavaVirtualMachines / jdk1.8.0_111.jdk / Contents / Home / lib / в / Library / Internet Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / lib / и решил проблему.

Не знаю, приведет ли этот подход к каким-либо неизвестным проблемам.

Если в вашем ~ / .zshrc есть что-то похожее на это:

export JAVA_HOME=$(/usr/libexec/java_home -v1.8)

так же, как писал tomfriwell, можно запустить:

/usr/libexec/java_home -V

, чтобы увидеть пути к установленным JVM, а затем указать, какой из них вы хотите нравится использовать. например:

export JAVA_HOME=$(/usr/libexec/java_home -v1.8.0_261)

, и это свяжет желаемую JVM с вашей java-командой

не забудьте source ~ / .zshrc после редактирования и сохранения

JDK 16 не имеет файла tools.jar.

  1. Загрузите JDK 8, скопируйте файл tools.jar из /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/lib
  2. Прошлая папка JDK 16 в /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/lib

Это потому, что действительный путь jdk не может быть обнаружен. Перейдите в свой проект, откройте папку android> файл gradle.properties> добавьте строку ниже

org.gradle.java.home = / Приложения / Android Studio.app/Contents/jre/jdk/Contents/Home

снова запустите свой проект, реагируя на родной run-android

Исходный ответ: Ссылка

Запустить эту команду на терминале

/usr/libexec/java_home -V | grep jdk

Выход

Matching Java Virtual Machines (2):
        1.8.291.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
        1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

Копировать tool.jar из

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib

и вставьте в

/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/lib

Команда для установки JDK

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8

Добавьте следующие пути к .base_profile и .zshrc в домашнем каталоге

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools

Поскольку у меня нет ~ / .zshrc на моем Mac, эти шаги устранили проблему:

1) Чтобы найти свой домашний Java-каталог, выполните:

/usr/libexec/java_home -V | grep jdk

и я вижу это:

Matching Java Virtual Machines (2):
1.8.271.09 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_171 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

2) Для редактирования .bashrc я использовал эту команду:

nano ~/.bashrc

, и я вижу следующее содержимое моего ~ / .bashrc:

# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"

3) Я добавил 2 строки в КОНЕЦ ~ / .bashrc:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"

где путь JAVA_HOME - "/ Library / Java / JavaVirtualMachines / jdk1.8.0_171.jdk / Contents / Home" берется из ШАГА 1 (!):

1.8.0_171 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

Обратите внимание - пути должны быть внутри кавычек ""

4) Закройте все окна терминала и заново соберите Android.

Использование / usr / libexec / java_home -V | grep jdk, чтобы найти 2 местоположения, затем

Удаление JavaAppletPlugin.plugin из "/ Library / Internet Plug-Ins" сработало для меня.

Я перехожу на java в настройках системы MAC попробуйте обновить Java попросить удалить неиспользуемую версию после удаления наконец РАБОТАЕТ

Обновите Android Studio до 4.0, и все готово

Попробуйте установить JAVA HOME в файле android / gradle.properties. У меня это сработало.

Подробная информация: https://dev.to/larrydanny/could-not-find-tools-jar-4363

Если в вашей системе 2 Javas,

    ~ % /usr/libexec/java_home -V | grep jdk
Matching Java Virtual Machines (2):
    1.8.291.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_144 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Попробуйте добавить путь «Java SE» в ваш gradle.properties, поскольку только этот пакет содержит tools.jar

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
  1. / usr / libexec / java_home -V | grep jdk

Соответствующие виртуальные машины Java (2): 1.8.152.16 (x86_64) "Oracle Corporation" - "Java" / Библиотека / Интернет-плагины / JavaAppletPlugin.plugin / Содержание / Главная 1.8.0_152 (x86_64) «Oracle Corporation» - «Java SE 8» /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home

  1. Откройте «/ Library / Internet Plug-Ins», удалите JavaAppletPlugin.plugin

  2. ОК

Если вы используете Unity:

Открыть настройки -> Внешние инструменты В Android / JDK нажмите Копировать путь enter image description here

затем откройте терминал и установите его как домашний Java:

export JAVA_HOME="{Paste value with quotes}"

Если у вас Mac & tool.jar не найден. Затем сначала проверьте JAVA_HOME в вашем .zshrc или .bashrc.

Если он присутствует, замените строку строкой ниже, а если нет, добавьте ее.

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home 

После добавления строки выше выполните команду ниже.

source ~/.zshrc

or

source ~/.bashrc

Примечание. Убедитесь, что вы уже установили Android Studio.

2022 WebDevInsider