在文件室生成的类上发布构建失败:javax.annotation 不存在



我有一个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")
}
}
}

在受影响模块的构建文件的末尾。

最新更新