Android Studio 解决Unable to make field private final java.lang.String java.io.File.path accessible错误

1,684次阅读
没有评论

目录

前言

一、项目环境

二、报错信息

三、问题分析

四、解决方法

前言

    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
如图:

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)