如何在 android studio m1 上使用 zulu-8.jdk 与 kapt 一起工作

时间:2021-06-24 23:50:17

标签: java android kotlin

当前的 JDK 版本 1.8 有一个错误,它阻止 Room 进行增量,看起来像 Current JDK version 1.8 has a bug that prevents Room from being incremental ,但是....

使用 zulu jdk 优化 m1 设备

/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

从 Android Studio 使用 sdk 时 m1 设备未优化

/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home

在我使用 kapt 'androidx.room:room-compiler:2.3.0' 之前,我已经激活了插件 id 'kotlin-kapt'

<块引用>

那么我如何在没有 error bug that prevents Room from being incremental 的情况下使用 zulu sdk 而不是 android jdk?有窍门吗?

<块引用>

我的设备在使用 android jdk 时滞后、发热和耗尽电池。

Current JDK version 1.8.0_292-b10 has a bug (https://bugs.openjdk.java.net/browse/JDK-8007720) that prevents Room from being incremental. Consider using JDK 11+ or the embedded JDK shipped with Android Studio 3.5+. 但我研究的 jdk 11+ 不支持 android studio。

编辑 1 我尝试过 Zulu-11.jdk ./gradlew assembleDebug --stacktrace 例外情况相同

java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题。我的解决步骤是

  • 使用 Zulu SDK 11
  • 在应用程序 gradle 上添加依赖项 kapt "org.xerial:sqlite-jdbc:3.34.0"(如果使用 zulu jdk 11 无法解决)

如果您使用 Hilt,请在应用程序 Gradle 文件的末尾为 kapt 添加以下编译选项

kapt {
    javacOptions {
        // These options are normally set automatically via the Hilt Gradle plugin, but we
        // set them manually to workaround a bug in the Kotlin 1.5.20
        option("-Adagger.fastInit=ENABLED")
        option("-Adagger.hilt.android.internal.disableAndroidSuperclassValidation=true")
    }
}