这是 Gradle 如何自动化构建以及您计算机上安装的 JDK 当前版本的问题,请按照以下步骤修复它,React Native 文档指出您需要采用openjdk8,但是您可能在同一环境中还有其他冲突的 JDK 版本目录。
博客文章:https://ashirazee.medium.com/react-native-android-failure-build-failed-with-an-exception-908934c3a32b
步骤1:
打开终端并通过键入以下命令导航到 /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
您需要的唯一依赖项是 acquireopenjdk-8.jdk,如反应本机文档中所述
但是,完成以下步骤后,也将其删除并重新安装:
sudo rm -rf /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
完成后,您可以通过键入来检查文件是否仍然存在ls
如果文件被删除。
Step 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
Step 3:
完成以下操作后,重新安装正确的 jdk,如 React Native 文档中所述,如下所示:
brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
https://reactnative.dev/docs/_getting-started-macos-android
这可能表示已经安装了 Adoptopenjdk-8.jdk,但请继续并重新安装:
brew reinstall adoptopenjdk8
此时错误应该已解决并且您的构建应该可以工作。
需要注意的是,这是一个构建错误,因为 React Native 使用 Gradle 来构建自动化,多个 jdk 版本的冲突可能会导致构建失败。
请参考以下文档:
https://docs.gradle.org/current/userguide/userguide.html