Flutter 报错: Unable to make field private final java.lang.String java.io.File.path accessible
这个报错是因为在 Flutter 项目中使用了 Java 的 File 类,但是在 Java 9 及以后的版本中,File 类的 path 字段变为了私有的 final 字段。而在 Flutter 项目中,File 类的 path 字段需要被访问到。
解决这个问题的方法是打开 Java 的 'java.io' 模块,让它对未命名模块开放。在项目的 build.gradle 文件中的 android 部分添加以下配置:
android {
// ...
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
// ...
packagingOptions {
jniLibs {
// 将 libflutter.so 排除在外
exclude 'libflutter.so'
}
}
// ...
}
然后,在项目的 android/app/src/main 文件夹下创建一个 module-info.java 文件,内容如下:
open module unnamed {
// 打开 java.io 模块
opens java.io;
}
这样就可以解决报错了。
原文地址: https://www.cveoy.top/t/topic/pd6Y 著作权归作者所有。请勿转载和采集!