无法打开设置文件的通用类缓存以供使用,该设置文件为:

55

由于无法找到sdk等原因,我重新安装了Android Studio。重新安装Java JDK和Android Studio后,一切正常,但出现了“Could not initialize class org.codehaus.groovy.runtime.InvokerHelper”错误,我通过更改Gradle版本解决了这个问题。现在出现的错误是“Type 'FlutterTask' property 'assets' is missing an input or output annotation.”。

构建失败,并显示以下异常:

  • 具体错误如下: 无法为设置文件“C:\Users\loran\ASProjects\xylophone-flutter\android\settings.gradle”(C:\Users\loran.gradle\caches\6.8.2\scripts\4mawlyb2l5e9tefyvnpxva1kg)打开通用类缓存。

BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 60

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪信息。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的洞察力。

  • 获取更多帮助,请访问https://help.gradle.org

构建失败,共耗时46秒,Gradle任务assembleDebug以退出代码1失败。


你能否执行 ./gradlew clean 命令,然后打开 Android Studio 并重新同步 Gradle? - Sisir
@Sisir 我需要在哪里执行命令?在IDE终端中没有起作用。 - Einliterflasche
gradlew 文件位于您的 android 文件夹中。因此,打开一个命令提示符,导航到 ProjectRoot\android,然后执行该命令。 - Sisir
4
gradlew cleangradlew 抛出的错误一样:无法打开设置文件的通用类缓存 - Einliterflasche
设置java_home后,我的错误得到了修复, org.gradle.java.home=/Applications/Android Studio 4.1 Preview.app/Contents/jre/Contents/Home - asish
安装了Java 17,对我来说很有效。 - Aiden Cullo
27个回答

31

我也遇到过这个问题,所以我安装了Java 8。你可能正在使用Java 13,因此请安装Java 8。


3
这对我没有用。我在哪里选择Java版本? - Einliterflasche
2
它对我起作用了,我已经安装了jdk 16,所以我安装了jdk 8并起作用了。Google需要摆脱所有与Java有关的束缚。设置所有这些东西都很无聊。谢谢! - Leonardo Costa
@vishal 你是指 JDK 16 吗? - Smart Manoj
安装JAVA 11对我有用,因为我正在使用Kotlin 1.8.0。 - Waqad Arshad

24

Java JDK 16似乎是导致这个问题的版本,请尝试下载较低版本的JDK,最好是JDK 8或11进行降级处理。

对于未来遇到这个错误的人,请使用以下链接下载JDK,享受编码体验,不要忘记更改路径。 https://www.oracle.com/java/technologies/javase-downloads.html


1
@Sana'aAl-ahdal,我很高兴它能让你愉快地编程,伙计。 - 13Tracso
谢谢兄弟,你救了我一命。我想指出这个网站:https://mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/,它展示了如何处理JAVA_HOME的方法,如果你需要的话。 - Tony Lucas
1
安装JAVA 11对我有用,因为我正在使用Kotlin 1.8.0。 - Waqad Arshad

9

找到了! 无需更改您的JDK版本,按照以下步骤解决问题:

  • 检查您的Java版本并记住它,在终端中使用“java -version”命令
  • 进入您的Android Studio路径安装
  • 然后在:Android Studio/jre/ 打开名为“release”的文件
  • 注意JAVA_VERSION字段的值
  • 如果它与计算机上的Java版本不同,请将其更改为计算机上安装的版本。

就是这样,我希望它能像解决我的问题一样解决您的问题。

尝试一下并反馈一下吧。


1
我没有名为jre的文件夹。 - Arjen
1
你可以添加一个名为jre的文件夹,然后将jbr中的内容复制到jre文件夹中。在检查任何东西(如flutter doctor)之前,请重新加载终端。 - Bourne
2
没有起作用。同样的错误。 - tazboy
bash: java: 命令未找到 - undefined
这些说明不清楚;我有一个空的jre目录,但我确实有jbr目录。 - undefined

8

所以问题出在您计算机上安装的Java版本、Android Studio配置的默认Java版本和项目的Gradle版本不一致。 基于Tafita Raza提供的答案,我按照以下步骤进行了修复:

  • 检查您的Java版本并记住它,在终端中使用“java -version”命令
  • 进入您的Android Studio路径安装目录
  • 在较新版本的Android Studio中,转到Andriod Studio/jbe,而在旧版本中,则转到Android Studio/jre/并编辑名为“release”的文件
  • 如果您计算机上安装的Java版本与JAVA_VERSION的值不同,请将其替换为您计算机上安装的Java版本
  • 现在进入您正在构建的项目文件夹,并检查Gradle版本是否与您安装的Java版本兼容

Java and gradle compatibility

  • 我在系统上安装了Java 19.0.2,因此根据表格,我需要Gradle版本7.6来构建项目。如果您的Java版本未列出,请查看官方网站Gradle https://docs.gradle.org/current/userguide/compatibility.html
  • 进入您的project_name/android/gradle/wrapper目录并编辑文件gradle-wrapper.properties
  • 将distributionUrl替换为与您系统上的Java版本兼容的Gradle版本DistributionUrl Example

2
谢谢!你提供的兼容性表格非常有用。我之前使用的是Java 17.0.6和gradle 4.0.2。我在我的Flutter项目中将gradle更新到了7.3.0,现在应用程序可以正常运行了。 - SAM
如果我的电脑上没有安装Java怎么办?无论是Bash还是CMD都会显示“没有Java”。 - undefined
@PeteAlvin 去 https://www.oracle.com/java/technologies/downloads/#jdk21-windows 下载与你的机器兼容的Java程序(我猜你的机器是Windows)。 - undefined

8

你可以试试这个,对我有效。

打开 Android 模块到一个新窗口,并在成功构建后自动下载所有必要的库,然后运行应用程序。

enter image description here


1
谢谢,这对我百分之百有效。你是真正的救世主。 - Robby Lebotha

6

如果您使用的是Java JDK16,请尝试安装最新的Gradle软件包gradle-7.1.1。为此,请打开android/gradle/wrapper/gradle-wrapper.properties文件,在distribution url下更新Gradle版本为7.1.1(或最新版本)。完成后,在Flutter项目目录内,通过终端运行以下命令:

cd android && ./gradlew

gradle-7.4 适用于 JDK 17。 - tingwai

5

我删除了指向JAVA下载的JAVA_HOME路径,并将JAVA_HOME路径更改为以下路径:

C:\Program Files\Android\Android Studio\jre

现在我正在编码。


1
对我有用(或者至少让我进入了下一个错误 :-p) - jmadsen
今天我刚刚安装了 Studio Electric Eel | 2022.1.1。这对我来说起作用了,但是我不得不使用:\Program Files\Android\Android Studio\jbr(注意:使用 jbr 而不是 jre)。 - user1544428
这似乎是我的问题。谢谢! - hemnath mouli
请发送您的地址,需要发送一些 cookies,并特别感谢 @user1544428。 - runningmark

5

主要是你安装了jdk16,我尝试安装java 8并将环境设置为java 8,这对我起作用了。


安装JAVA 11对我有用,因为我正在使用Kotlin 1.8.0。 - Waqad Arshad

2
我在使用React Native时遇到了同样的问题,我按照以下步骤解决了它:
  1. 打开Android Studio

  2. 文件 -> 打开你的项目(选择android文件夹)

  3. 等待gradlew完成构建过程

  4. 然后点击菜单栏的Build -> Rebuild project

  5. 现在你可以编译 npx react-native run-android

enter image description here


1
只需要将Java版本更改为11,并将JAVA_HOME设置为jdk 11。确保删除其他任何Java版本(最新的)。然后重新启动系统,它就会正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接