提问者:小点点

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


我正在尝试在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

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

Gradle版本:7.4.2JDK版本:18


共3个答案

匿名用户

--add-open=java. base/java.io=ALL-UNNAMED添加到您的JAVA_OPTS环境变量或org.gradle.jvmargsgradle属性将在Java18中解决此问题。

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

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

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

匿名用户

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

通过将依赖项更改为此来修复:

 classpath 'com.android.tools.build:gradle:7.4.1'

匿名用户

我在尝试构建Android项目时在IntelliJ中遇到了这个奇怪的错误。我认为核心原因是我更改了Gradle在设置中使用的JDK版本-