无法使字段私有最终 java.lang.String java.io.File.path 可访问 Qt Android

lis*_*ith 35 java android compiler-errors gradle android-studio

我正在尝试在 Qt 中运行我的 android 程序,但是出现以下错误:

Execution failed for task ':processDebugManifest'.
> Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @13d72a22
Run Code Online (Sandbox Code Playgroud)

我尝试了不同版本的 jdk 和 gradle 但没有任何帮助。

Gradle版本:7.4.2 JDK版本:18

Joe*_*ler 69

Flutter 开发人员的答案

我在尝试为 Android 构建 Flutter 应用程序时在 IntelliJ 中遇到了此错误。我正在更新一个大约一年前开发的应用程序,因此com.android.tools.build:gradleandroid/build.gradle 中的依赖项已经过时了。

通过更改对此的依赖关系来修复:

 classpath 'com.android.tools.build:gradle:7.4.1'
Run Code Online (Sandbox Code Playgroud)

  • 这对于原生 Android 也有效。谢谢! (5认同)

pha*_*lat 32

添加--add-opens=java.base/java.io=ALL-UNNAMEDJAVA_OPTS环境变量或org.gradle.jvmargsgradle 属性将解决 Java 18 的此问题。

org.gradle.jvmargs这是我正在使用的完整gradle 属性值:

org.gradle.jvmargs = -Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
Run Code Online (Sandbox Code Playgroud)

另一种选择是降级到 JDK 17。我降级到 openjdk 版本“17.0.3”2022-04-19 并没有收到错误。


zhx*_*hxh 12

Java版本太高,降级即可解决此问题。

您可以按照以下面包屑进行操作:

文件->项目结构->SDK位置->Gradle设置->Gradle JDK


Abd*_*gui 12

我刚刚找到解决方案我所做的就是添加

org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED
Run Code Online (Sandbox Code Playgroud)

gradle.properties文件

请参阅此链接:如何解决 Java 9 上的 InaccessibleObjectException(“无法使 {member} 可访问:模块 {A} 不会向 {B} '打开 {package}'”)?


ahm*_*ira 5

只需更新项目依赖项即可解决此问题。

File > Project Structure > Suggestions


归档时间:

查看次数:

79648 次

最近记录:

1 年,7 月 前