【发布时间】:2019-07-01 00:47:48
【问题描述】:
我在我的项目中添加了一个新的 Retrofit 接口,其中包含几个用@GET 和@HEADERS 注释注释的端点,在使用上述类的构造函数中的@Inject 注释将所述接口注入到存储库类之后, Android Studio 抛出此错误:
NonExistentClass cannot be converted to Annotation
查看生成的 Java 代码后,它将 @GET 和 @HEADERS 注释替换为:
@error.NonExistentClass()
我已经尝试过以下方法:
使用
annotatioProcessor代替kapt在
gradle.properties中将jetifier.enabled设置为false在我的
build.gradle文件中将generateStubs设置为true在我的
build.gradle文件中将correctErrorTypes设置为true
我正在使用:
Android Studio 3.3
Kotlin 1.3.11
匕首 2.21
改造 2.3.0
科特林
Kapt
这可能是一些匕首范围问题吗?还是Retrofit / dagger 不完全兼容新版本的Kapt插件?
【问题讨论】:
-
你能显示一些代码吗?
-
我找到了解决方案,我的项目是多模块的,
remote模块包含retrofit依赖项,出于某种原因,IDE 允许从 @ 访问remote模块依赖项987654342@模块,在模块上添加retrofit依赖解决了问题 -
谢谢@AlfredoBejarano 我发现了我的问题,花费的时间比我想象的要长,但对我来说这个错误实际上非常明确。我将添加一个可能对其他人有帮助的答案。
标签: android retrofit2 dagger-2 kapt