kaptGenerateStubsDebugKotlin не работает на Macbook Apple M1 (JDK 11)
Я получаю этот сбой как в Android Studio, так и при запуске
./gradlew assembleDebug
в командной строке нового Macbook с чипом Apple M1 Max. На моем старом 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. (Тот же результат для JDK по умолчанию для Android Studio (11.0.10) и «11.0.13 2021-10-19 LTS», загруженный с www.oracle.com.)
Есть идеи, как заставить это работать на M1 Mac?
3 ответа
Как писал @Jake, перезагрузка компьютера каким-то образом устранила проблему.
Из ссылки, которой поделилась mcomella — https://youtrack.jetbrains.com/issue/KT-45545, они исправили это в Kotlin 1.6.x.
Так что переход на Kotlin 1.6.x сработал в моем случае (Apple M1 Pro).
Я решаю это в своем MacBook Air M1, обновляя версию Kotlin и всю другую библиотеку для последней версии, вам также необходимо обновить compileSDKVersion и targetSDKVersion для последней версии.