当前位置: 首页 > 知识库问答 >
问题:

无法编译设置gradle React Native

董同
2023-03-14

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

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

>

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

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

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

  • 共有3个答案

    王泓
    2023-03-14

    我已经通过在 Android 工作室中打开项目来解决问题 反应本机版本 0.60.5

    杭志泽
    2023-03-14

    这是由于您的系统上集成了jdk版本。

    如果您使用的是最新版本的 Java 开发工具包,则需要更改项目的 Gradle 版本,以便它可以识别 JDK。您可以通过转到 {project root folder}\android\gradle\wrapper\gradle-wrapper.properties 并更改 distributionUrl 值来升级 Gradle 版本来执行此操作。您可以查看最新版本的 gradle,注意最新版本的 gradle,并在 gradle-wrapper.properties 中进行编辑,并更改 distributionUrl

    涂承运
    2023-03-14

    这是一个关于Gradle如何自动构建以及安装在您机器上的jdk的当前版本的问题,按照这些步骤来修复它,react本机文档声明您需要adoptopenjdk8,但是您可能在同一目录中有其他冲突的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
    

    您需要的唯一依赖项是approveopenjdk-8.jdk,如react原生文档中所述

    但是,请删除它,并在完成以下步骤后重新安装它:

    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
    

    第三步:

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

    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

     类似资料:
    • 问题似乎出在代码上。..它指向/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/,而它需要查看jar所在的/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/。谢谢你的回答…

    • 问题内容: 如何在Ubuntu上编译/安装node.js?失败,并显示错误消息。 问题答案: 一线 安装所有必需的依赖项(curl和git并不是真正需要的,但是非常有用,如果通过nvm安装也需要)。 并非总是需要最后两个依赖项,但是无论如何安装它们确实很有用,而且以后可能也需要它。 仅安装 cxx编译器 如果 openssl 丢失

    • 问题内容: 由于某些原因,CMake的C和C++编译器默认设置为。 cmake -D CMAKE_C_COMPILER = / usr / bin / gcc -D CMAKE_CXX_COMPILER = / usr / bin / g ++ 但我得到了错误 CMake错误:源目录[当前目录] / CMAKE_CXX_COMPILER = / usr / bin / g ++“不存在。 为什么C

    • LiteIDE 通过使用环境配置文件来支持 go 语言的交叉编译,对于 windows 和 linux 下相对简单,对于 macOS 可能会复杂一些, 本文以 macOS 交叉编译 windows-386 可执行文件为例,简要介绍如何在 LiteIDE 中配置和实现交叉编译功能。 交叉编译环境选择和配置 首先选择环境,在工具栏环境选择中选择 cross-win32 切换至 windows-386

    • 我下载了cratedb的源代码,但无法正确编译,下面是详细说明:jdk:1.8 /workspace/crate编译 应该是elasticsearch包不见了,下一步怎么办? 谢谢!

    • 我在我的源代码中使用Java10 API,当我尝试用maven和思想编译这段代码时,它会抛出一个错误: 我的环境: > JDK 10 Maven:3.6 想法 如果我删除这个API,我就没事了。 我确实遵循以下事情: < li >向pom添加编译器选项 将 IDEA 语言级别更改为 java10 文件- 以上两个不起作用。