我有一个Java项目,在Android Studio和CI服务器上构建得很好。
但是,在终端上构建带有 gradle 的发布版本失败了。 我得到以下输出:
Database_Impl.java:42: error: package javax.annotation does not exist
Database_Impl.java:44: error: cannot find symbol
@Generated("androidx.room.RoomProcessor")
Dagger的一些类似问题表明这是Java版本的构建系统的问题。
我使用的是Mac,我的javac版本是:10.0.2
我遇到了同样的问题,将implementation "javax.annotation:jsr250-api:1.0"
添加到build.gradle依赖项有所帮助。
这似乎与您计算机上处于活动状态的 Java 版本有关。
dagger也有类似的错误票:https://github.com/google/dagger/issues/1449
讨论的结果是,这是 KAPT: https://youtrack.jetbrains.com/issue/KT-32804 中的一个错误
解决方法是将
if (project.hasProperty('kapt')) {
// Reference for 'kapt' DSL: https://kotlinlang.org/docs/reference/kapt.html#java-compiler-options
kapt {
// we expect this closure to run over a org.jetbrains.kotlin.gradle.plugin.KaptExtension
javacOptions {
option("-source", "8")
option("-target", "8")
}
}
}
在受影响模块的构建文件的末尾。