我们正在尝试改进我们的多模块Android应用程序的构建时间,并且我们已经达到了尝试启用增量KAPT注释处理编译的地步。
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")
}
}
然而,在尝试使用< code > gradlew汇编-扫描命令对构建时间进行基准测试时,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,但它不起作用,它抱怨它不是JDK 8。您知道这个设置有什么问题吗?
转到项目结构
编译时,它给我看了一个警告:
当前的 JDK 版本有一个错误(https://bugs.openjdk.java.net/browse/JDK-8007720),该错误阻止 Room 进行增量。考虑使用 JDK 11 或 Android Studio 3.5 附带的嵌入式 JDK。注意: 1 编写生成的AppGlideModule与:[][WARN]增量注释处理请求,但支持被禁用,因为以下处理器不是增量的:androidx.room.RoomProcessor(动态)。
然后我从甲骨文网站下载了JDK 8 (8u261)(它需要注册,所以寻找直接链接)。
安装后,将<code>JAVA_HOME
然后重新编译应用程序。甚至不需要重新启动。
更新
一个月后,我再次看到同样的警告。然后阅读接受的答案,发现Java嵌入了Android Studio:C:\Program Files\Android\Android Studio\jre
。
您将需要使用嵌入AS的JDK来解决此问题。确保使用上面的 AS 3.5。关于项目结构 -
如果从终端运行,请确保$JAVA_HOME包含正确的路径。
我猜Android studio还不支持JDK 11。我还尝试使用最新的JDK 8(231,它是3.5使用202),但它导致了这个问题。
所以我更改了我的依赖项,如下所示: 但我不知道从哪里可以把1.6级改成1.8级... 当我编译应用程序时,我遇到了这个错误: 提前致谢:)
问题内容: 我使用Android Studio,最近收到错误消息: 错误:任务’:app:compileDebugJavaWithJavac’的执行失败。compileSdkVersion’android-24’需要JDK 1.8或更高版本进行编译。 但是我已经安装了JDK 1.8: :\ Users ..> java -version Java版本“ 1.8.0_91” Java(TM)SE运行
我有一个Xamarin表单项目,我正试图通过与VST的持续集成与HockeyApps集成。我的应用程序使用Java1.8进行编译,并使用ProGuard压缩android apk文件。但是当java试图编译应用程序时,它发现安装的proguard版本与java 1.8不兼容。错误如下:。。。无法处理类[android/app/ActivityTracker.class]不支持的类版本号[52.0]
问题内容: 我有一个像这样的表:例如,trans是表的名称 而且我必须更新Delta列。假设每月有一笔交易,则该值是同一帐户的当前行与同一帐户的先前行之差。这是一个可以生成增量值的虚拟sql 该查询的结果是 但是没有任何前一行的行的增量应该是其数量,例如 这些都是顺便说了。 请帮助我解决此查询。 问题答案: 这是您对原始查询进行的相应修改: 月比较从移动到,这使得一个差,并且被替换为。 脚本 的版
我已经搜索了几种在Mac上更改JDK版本的方法。 我得到了 我如何在我的Mac上改变java版本。
我正在使用intellij创建sbt跨编译平台项目,使用以下平台JVM、JS、NativeWin、NativeUbuntu、Android和共享scala代码。我的项目需要Java8,但似乎Android不适合Java8版本,因为我在sbt文件中为Android模块指定了1.7版本,如下所示: Android模块文件 项目设置: