首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当前的JDK版本1.8有一个错误,它阻止了Room的增量

当前的JDK版本1.8有一个错误,它阻止了Room的增量
EN

Stack Overflow用户
提问于 2019-11-12 16:10:17
回答 5查看 9.7K关注 0票数 23

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

  • Android版本: v3.5.2
  • 机房版本: v2.2.1
  • 分级版本: v5.4.6
  • 安卓Gradle插件版本: v3.5.2
  • Kotlin版本: v1.3.50

gradle.properties:

代码语言:javascript
运行
复制
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 (在每个使用房间的模块内):

代码语言:javascript
运行
复制
kapt {
    arguments {
        arg("room.incremental", "true")
    }
}

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

代码语言:javascript
运行
复制
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).

我试图在project窗口中将Open 11设置为项目的默认JDK,但是它没有工作,它抱怨它不是JDK 8。有什么不对吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-11-13 07:32:47

您将需要使用嵌入了AS的JDK来解决这个问题。请确保使用的3.5以上。在项目结构上,-> SDK位置一定要指向AS附带的jdk。/Applications/AndroidStudio.app/Contents/jre/jdk/Contents/Home,然后需要重新启动AS。

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

我想Android工作室还不支持JDK 11。我还尝试使用最新的JDK 8 (231,即3.5使用202),但它导致了这个问题。

票数 14
EN

Stack Overflow用户

发布于 2020-08-17 15:39:40

在编译时,它向我显示了一个警告:

当前的JDK版本有一个bug (https://bugs.openjdk.java.net/browse/JDK-8007720),它阻止了Room的增量。考虑使用JDK 11+或随Android 3.5+.Note附带的嵌入式JDK:1编写了带有:增量注释处理请求的GeneratedAppGlideModule,但由于以下处理器不是增量的,所以禁用了支持: androidx.room.RoomProcessor (动态)。

然后,我从Oracle站点下载了JDK 8(8u 261)(它请求注册,因此寻找一个直接链接)。

安装后,将JAVA_HOME系统变量更改为新路径:

然后重新编译应用程序。甚至不需要重新启动。

更新

一个月后,我又看到了同样的警告。然后阅读已接受的答案和嵌入了Android:C:\Program Files\Android\Android Studio\jreC:\Program Files\Android\Android Studio\jre Java。

File > Project Structure...,然后是SDK Location,在字段中,JDK location编写了这条路径。重新开始。

票数 4
EN

Stack Overflow用户

发布于 2021-08-09 08:49:58

转到项目结构> SDK位置,然后转到Gradle设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58822538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档