kaptGenerateStubsDebugKotlin 在 Apple M1 Macbook (JDK 11) 上失败

问题描述 投票:0回答:4

我在 Android Studio 中以及在配备 Apple M1 Max 芯片的新 Macbook 上的命令行上运行

./gradlew assembleDebug
时都遇到此故障。在我的旧 Intel Mac 上构建项目没有问题。

> Task :app:kaptGenerateStubsDebugKotlin FAILED
e: java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext (in unnamed module @0x4d1ecff7) cannot access class com.sun.tools.javac.util.Context (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x4d1ecff7
        at org.jetbrains.kotlin.kapt3.base.KaptContext.<init>(KaptContext.kt:28)
        at org.jetbrains.kotlin.kapt3.KaptContextForStubGeneration.<init>(KaptContextForStubGeneration.kt:40)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.contextForStubGeneration(Kapt3Extension.kt:287)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:171)
        at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:102)

这是完整的错误输出

类 org.jetbrains.kotlin.kapt3.base.KaptContext (在未命名模块 @0x4d1ecff7 中)无法访问类 com.sun.tools.javac.util.Context (在模块 jdk.compiler 中),因为模块 jdk.compiler 不导出 com .sun.tools.javac.util 到未命名模块@0x4d1ecff7

谷歌搜索一下,错误消息看起来很像这里的消息:“Kapt 与 JDK 16+ 不兼容”。但问题是,我使用的是 JDK 11。(Android Studio 的默认 JDK (11.0.10) 和从 www.oracle.com 下载的“11.0.13 2021-10-19 LTS”结果相同。)

有什么想法可以让它在 M1 Mac 上运行吗?

android kotlin apple-m1 kapt
4个回答
9
投票

正如@Jake 所写,重新启动计算机以某种方式解决了问题。


5
投票

从 mcomella 共享的链接 - https://youtrack.jetbrains.com/issue/KT-45545,他们已在 Kotlin 1.6.x 中修复了该问题。

因此,转向 Kotlin 1.6.x 对我的情况(Apple M1 Pro)有效。


0
投票

我在我的MacBook Air M1中解决了这个问题,更新了最新版本的Kotlin版本和所有其他库,您还必须更新最新版本的compileSDKVersion和targetSDKVersion。


0
投票

./gradlew --stop
应该可以解决问题

© www.soinside.com 2019 - 2024. All rights reserved.