如何让 Dagger 2 与 Android studio java 图书馆项目一起工作

How do I get dagger 2 to work with Android studio java library project

我有一个应用程序模块(这是我的应用程序)和一个 java 库项目模块(称为 api)我想在 api 模块中使用 dagger 2但是注释处理器不工作,没有像人们期望的那样生成前缀为 类 的匕首(例如 DaggerApiComponent)。任何帮助将不胜感激,是的,我正在使用 gradle.

我终于设法解决了这个问题,gradle 的 android-apt 插件仅在使用 apply plugin: 'com.android.application' 时可用。因此,在无法使用 com.android.application 插件的 java 库中,您需要改用插件 apply plugin: "net.ltgt.apt" 在应用此插件后,您可以使用 apt 配置来实现 dagger 的编译器依赖性 apt "com.google.dagger:dagger-compiler:2.0.2" 在依赖块中。此外,您还需要 apply plugin: "idea" 才能使 net.ltgt.apt 正常工作,如果您不应用 idea 插件,注释处理器会生成匕首工厂 类 但它不会包含在 IDE的sourceSet,所以不要忘记应用idea插件。所以最后我的构建脚本看起来像这样

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.6"
    }
}
apply plugin: 'java'
apply plugin: "net.ltgt.apt"
apply plugin: "idea"

dependencies {
    // Dagger 2 and Compiler
    compile 'com.google.dagger:dagger:2.0.2'
    apt "com.google.dagger:dagger-compiler:2.0.2"
}