无法编译设置 gradle React Native

Iva*_*val 11 android gradle react-native

该应用程序在另一台计算机上为我工作,现在从另一台计算机上的存储库下载文件给了我这个问题

失败:构建失败并出现异常。

  • 其中:设置文件'C:\Users\samue\Desktop\MCGPS\TeachAll\android\settings.gradle'

  • 出了什么问题:无法编译设置文件“C:\Users\samue\Desktop\MCGPS\TeachAll\android\settings.gradle”。

    启动失败:语义分析期间出现一般错误:不支持的类文件主要版本 57

A S*_*zee 11

这是 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
Run Code Online (Sandbox Code Playgroud)

完成该操作后,请键入ls以查看包含哪些文件并记下版本。

如果您有一个或多个 JDK 文件,如下所示:

adoptopenjdk-8.jdk jdk-16.jdk  jdk-8.jdk
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令行删除它们:

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-16.jdk 
 
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-8.jdk
Run Code Online (Sandbox Code Playgroud)

您需要的唯一依赖项是 acquireopenjdk-8.jdk,如反应本机文档中所述

但是,完成以下步骤后,也将其删除并重新安装:

sudo rm -rf /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk
Run Code Online (Sandbox Code Playgroud)

完成后,您可以通过键入来检查文件是否仍然存在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
Run Code Online (Sandbox Code Playgroud)

步骤3:

完成以下操作后,重新安装正确的 jdk,如 React Native 文档中所述,如下所示:

brew install --cask adoptopenjdk/openjdk/adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

https://reactnative.dev/docs/_getting-started-macos-android

这可能表示已经安装了 Adoptopenjdk-8.jdk,但请继续并重新安装:

brew reinstall adoptopenjdk8
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

此时错误应该已解决并且您的构建应该可以工作。

在此输入图像描述

需要注意的是,这是一个构建错误,因为 React Native 使用 Gradle 来构建自动化,多个 jdk 版本的冲突可能会导致构建失败。

请参考以下文档:

https://docs.gradle.org/current/userguide/userguide.html


小智 6

这是由于您的系统上安装的 JDK 版本所致。

如果您使用的是最新版本的 Java Development Kit,则需要更改项目的 Gradle 版本,以便它可以识别 JDK。您可以通过转到{project root folder}\android\gradle\wrapper\gradle-wrapper.properties并更改该distributionUrl值来升级 Gradle 版本来完成此操作。
您可以查看 最新版本的 gradle并记下最新版本的 Gradle 并编辑gradle-wrapper.properties并更改distributionUrl


小智 1

这个问题似乎与java版本有关,请检查版本是否正确。另外,即使安装了两个或多个jdk,我们也可以在运行时通过指定这个来指定必须使用哪个jdkgradlew.bat build -Dorg.gradle.java.home=---path-to-jdk---