目录
前言
一、项目环境
二、报错信息
三、问题分析
四、解决方法
前言
java.lang.String java.io.File.path accessible"。这个错误通常会在编译或运行项目时出现,导致项目无法正常运行。
这个错误的原因是因为 Android Studio 使用了一个名为 "Instant Run" 的功能,该功能会在运行应用程序时修改应用程序的字节码。然而,这个功能可能会与某些库或插件不兼容,导致出现上述错误。
一、项目环境
Flutter: 3.7.11
Android Studio: 2020.5.20
Java: 1.8
Gradle: 4.0.0
Android Gradle Plugin (AGP): 4.1.3
二、报错信息
Execution failed for task ‘:app:processDailyDebugMainManifest’.
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 @2374ab37
三、问题分析
“Unable to make field private final java.lang.String java.io.File.path accessible” 这个错误通常是由于 Android Studio 的 Instant Run 功能与某些库或插件不兼容导致的。具体来说,Instant Run 功能会在运行应用程序时修改应用程序的字节码,而某些库或插件可能会依赖于应用程序的原始字节码,导致出现上述错误。
这个错误的解决方法有很多种,可以尝试禁用 Instant Run 功能、更新 Android Studio 版本、更新 Gradle 版本、检查项目依赖库等等。具体的解决方法需要根据具体情况进行选择。
总之,这个错误通常是由于兼容性问题导致的,需要仔细分析错误信息和项目依赖关系,才能找到正确的解决方法。
四、解决方法
禁用 Instant Run 功能:在 Android Studio 中,可以通过 “File” -> “Settings” -> “Build, Execution, Deployment” -> “Instant Run” 菜单来禁用 Instant Run 功能。
更新 Android Studio 版本:如果你的 Android Studio 版本比较旧,可以尝试更新到最新版本,因为新版本可能已经修复了这个问题。
更新 Gradle 版本:如果你的 Gradle 版本比较旧,可以尝试更新到最新版本,因为新版本可能已经修复了这个问题。
检查项目依赖库:如果你的项目依赖了一些库或插件,可以尝试升级或降级这些库或插件,以解决兼容性问题。
Android Studio编译报错:
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
解决方案,在gradle.properties的org.gradle.jvmargs后面增加配置:
–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
如图: