Android Studio 使用jdk17.0.7,本地java使用了jdk17.0.7,报错报错Execution failed for task ':app:compileDebugJavaWithJavac'. > superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner (in unnamed module @0x369f0c74) cannot access class com.sun.tools.javac.tree.TreeScanner (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.tree to unnamed module @0x369f0c74
时间: 2024-03-21 08:40:54 浏览: 209
最新版linux jdk-17-linux-x64-bin.tar.gz
这个报错是因为在使用ButterKnife注解时,ButterKnifeProcessor 这个类中引用了 JDK 的 com.sun.tools.javac.tree.TreeScanner,而 JDK 17 中默认是关闭了对 com.sun.* 包的访问权限的,所以会出现该报错。
解决方法:
在 app 模块的 build.gradle 文件中添加以下代码:
```gradle
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// 添加以下代码
tasks.withType(Javac::class.java) {
options.compilerArgs.addAll(arrayOf("--add-opens", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"))
}
}
```
然后重新编译即可。
阅读全文