1

我的 Android 项目中有模块。其中一个模块(例如moduleA)使用另一个(moduleB)作为依赖项:

dependencies {
    api project(':moduleB')
}

而且我还有 apt 和 old gradle plagin。现在,我从 gradle 文件中删除 apt,升级插件版本并得到错误:

Annotation processors must be explicitly declared now.  The following 
dependencies on the compile classpath are found to contain annotation 
processor.  Please add them to the annotationProcessor configuration.
  - moduleB.jar (project :moduleB)

如果我们使用一些外部依赖项,我们会这样做(例如)来解决这个问题:

compile 'com.google.dagger:dagger:2.8'
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'

但是,当注释处理器位于 gradle 模块内部时,我需要做什么?你能解释一下吗,因为我对这方面没有深入的了解,通常我只是简单地走这条线

compile 'com.google.dagger:dagger:2.8'
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'

来自图书馆提供者的存储库。我试图研究这个案例,但没有找到类似的东西。

4

1 回答 1

1

project(':moduleB')只是一种指定项目间依赖关系的方法,就像使用“完整”坐标 ( com.google.dagger:dagger:2.8) 一样。因此,要将另一个模块用作注释处理器,只需使用

dependencies {
    …
    annotationProcessor(project(":moduleB"))
    …
}
于 2018-11-22T23:42:45.613 回答