当前的JDK版本1.8中有一个错误,该错误会阻止Room递增

问题描述 投票:1回答:1

[我们正在尝试改善我们的多模块Android应用的构建时间,并且已经达到了启用增量KAPT注释处理编译的地步。

  • 房间版本: v2.2.1
  • Gradle version: v5.4.6
  • Android Gradle插件版本: v3.5.2
  • Kotlin版本: v1.3.50

gradle.properties:

org.gradle.daemon=true
org.gradle.caching=true
org.gradle.parallel=true

kapt.incremental.apt=true
kapt.use.worker.api=true
kapt.include.compile.classpath=false

android.databinding.incremental=true

build.gradle(在使用Room的每个模块内部):

kapt {
    arguments {
        arg("room.incremental", "true")
    }
}

但是,当尝试使用gradlew assemble -scan命令对构建时间进行基准测试时,Gradle会引发以下错误:

warning: Current JDK version 1.8.0_201-b09 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+.
ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1
[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: androidx.room.RoomProcessor (DYNAMIC).

我试图在项目结构窗口中将Open JDK 11设置为该项目的默认JDK,但是它没有用,它抱怨说它不是JDK8。任何想法该设置有什么问题吗?

android gradle kotlin android-room kapt
1个回答
0
投票

您将需要使用嵌入AS的JDK来解决此问题。确保使用上述AS 3.5。在项目结构上-> SDK位置确保jdk指向AS随附的jdk。/ Applications / Android Studio.app/Contents/jre/jdk/Contents/Home然后,您将需要重新启动AS。

如果从终端运行,请确保$ JAVA_HOME包含正确的路径。

我想Android Studio还不支持JDK 11。我还尝试使用最新的JDK 8(231,其中AS 3.5使用202),但它导致了此问题。

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