这是 Gradle 如何自动构建和安装在您机器上的 JDK 的当前版本的问题,请按照以下步骤修复它,react native 文档说明您需要采用openjdk8,但是您可能有其他冲突的 JDK 版本在同一目录中。
博文:https://ashirazee.medium.com/react-native-android-failure-build-failed-with-an-exception-908934c3a32b
第一步:
打开您的终端并通过键入以下命令导航到 /Library/Java/JavaVirtualMachines:
cd /Library/Java/JavaVirtualMachines
在您完成该操作后,输入 ls 以查看包含哪些文件并记下版本。
如果您有一个或多个 JDK 文件,如下所示:
adoptopenjdk-8.jdk jdk-16.jdk jdk-8.jdk
然后使用以下命令行删除它们:
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-16.jdk
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-8.jdk
您需要的唯一依赖项是 react native 文档中提到的采用openjdk-8.jdk
但是,在完成这些步骤后,也请删除它并重新安装它:
sudo rm -rf /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
完成此操作后,您可以通过键入 ls 检查文件是否仍然存在
如果文件被删除。
第 2 步:
然后运行以下命令以确保从您的库中删除所有其他链接、插件和文件:
运行以下命令:
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf ~/Library/Application\ Support/Oracle/Java
第 3 步:
完成以下操作后,按照 react native 文档中的说明重新安装正确的 jdk,如下所示:
brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
https://reactnative.dev/docs/_getting-started-macos-android
这可能表示已经安装了采用openjdk-8.jdk,但请继续重新安装:
brew reinstall adoptopenjdk8
此时错误应该已经解决,您的构建应该可以工作了。
请务必注意,这是一个构建错误,因为 react native 使用 Gradle 来构建自动化,多个 jdk 版本的冲突可能会导致您的构建失败。
请参考以下文档:
https://docs.gradle.org/current/userguide/userguide.html