jus*_*lbs 48 android android-studio butterknife
构建成功,但在模拟器上运行失败,并在控制台中显示以下消息:
原因:超类访问检查失败:类utterknife.compiler.ButterKnifeProcessor$RScanner(在未命名模块@0x65e8e2f6中)无法访问类com.sun.tools.javac.tree.TreeScanner(在模块jdk.compiler中),因为模块jdk.compiler不访问将 com.sun.tools.javac.tree 导出到未命名模块 @0x65e8e2f6
我尝试过的:从 Gradle 中删除 Butterknife,同步,添加回来,再次同步。完全删除 Butterknife 库不会在编译时产生此错误,但显然由于缺少 Butterknife 而无法编译。
我的环境: Butterknife 10.2.3 Android Grade 插件版本:7.1.2 - Gradle 版本:7.2 - Android Studio Bumblebee
我读到,在某些罕见的情况下,其他库也会发生此错误,这些情况似乎与我的无关,但我仍然没有找到解决方案。我知道 Butterknife 已被弃用,我应该迁移到 ViewBinding,但目前将整个项目转换为一项艰巨的任务。谢谢!
Die*_*rik 73
一些 sun 库需要对较新的 Java 编译器可见。请参阅此答案以获取更多信息。我将以下内容添加到我们的gradle.properties文件中并解决了问题。(我们使用 Butterknife 和 Realm,并且需要添加以下三个包。(对于 Butterknife,您可能不需要“javac.code”))
org.gradle.jvmargs=-Xmx1920M \
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
Run Code Online (Sandbox Code Playgroud)
小智 23
我在将 android Studio 更新到 Android Studio Flamingo 后就遇到了这个问题 | 2022.2.1,我的项目使用嵌入式jdk,我使用简单的步骤修复
azz*_*its 13
尝试将以下代码添加到 android 部分 {} 内的应用程序 build.gradle(项目级别)
android{
tasks.withType(JavaCompile).configureEach{
options.fork = true
opti ons.forkOptions.jvmArgs +=[
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED']
}
Run Code Online (Sandbox Code Playgroud)
在 gradle.properties 文件中,
android.nonFinalResIds=false
Run Code Online (Sandbox Code Playgroud)
例如
android {
namespace = "com.xp.vrsr"
compileSdk = 34
defaultConfig {
applicationId "com.interact.vrsrilanka"
minSdk 24
targetSdk 34
versionCode 4
versionName "1.3"
multiDexEnabled true
}
tasks.withType(JavaCompile).configureEach{
options.fork = true
options.forkOptions.jvmArgs +=[
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED']
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面答案中的想法并使用 Android Studio:文件 | 设置 | 构建、执行、部署 | 构建工具| 摇篮。Gradle JDK -> Android Studio 默认 JDK(版本 11.0.13 ...)
在 Windows 上,要从终端构建,还必须添加
JAVA_HOME=C:\Program Files\Android\Android Studio\jre
Run Code Online (Sandbox Code Playgroud)
前往文件 | 设置 | 终端| 环境变量
小智 5
第1步:gradle.properties添加
android.nonFinalResIds=false
Run Code Online (Sandbox Code Playgroud)
第2步:应用程序build.gradle添加
tasks.withType(JavaCompile).configureEach{options.fork = true
options.forkOptions.jvmArgs +=[
'--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
'--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED']}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40046 次 |
| 最近记录: |