美文网首页Android
【BUG系列】Flutter Unable to make fi

【BUG系列】Flutter Unable to make fi

作者: Wing_Li | 来源:发表于2023-06-05 14:30 被阅读0次
    • What went wrong:
      Execution failed for task ':app:processDebugMainManifest'.
      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 @1d6547f

    • Try:
      Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.


    这个异常通常是因为Java版本不兼容或者项目构建方式不对所导致的。具体地说,这个异常主要是由Java 9及以上版本的模块化特性引起的。

    在Java 9及以上版本中,Java平台被分成了多个模块,每个模块都有自己的作用域和依赖关系。当使用一些第三方库时,如果该库内部使用了Java核心库的一些私有API,那么就可能会导致上述异常发生,因为Java 9之后的版本默认情况下是不允许访问私有API的。另外,也有可能是因为项目使用了不兼容的Gradle版本或者构建方式不正确所引起的。

    针对这个问题,可以尝试以下解决方案:

    方案一:

    升级Gradle版本到5.6及以上版本,因为这个版本从底层支持Java 9及以上版本的模块化特性。

    方案二(我是这样解决的):

    在项目的build.gradle文件中添加以下语句:

    tasks.withType(JavaCompile) {
        options.compilerArgs.addAll(['--add-opens', 'java.base/java.io=ALL-UNNAMED'])
    }
    

    这样可以打开对Java io的无限制访问权限。

    方案三:

    如果使用的是Android Studio,可以在项目的gradle.properties文件中添加以下语句:

    android.enableDexingArtifactTransform.desugaring=false
    

    这样可以禁用Desugaring,从而避免一些不兼容问题。


    希望这些解决方案能够帮助你解决问题。

    相关文章

      网友评论

        本文标题:【BUG系列】Flutter Unable to make fi

        本文链接:https://www.haomeiwen.com/subject/krtwedtx.html