java - 如何让 Dagger 2 与 Android Studio Java 库项目一起工作

标签 java gradle dagger-2

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

最佳答案

最后我设法解决了这个问题,gradle 的 android-apt 插件仅在使用 apply plugin: 'com.android.application' 时可用。因此,在无法使用 com.android.application 插件的 Java 库中,您需要在应用此插件后改为使用插件 apply plugin: "net.ltgt.apt"插件,您可以在 dependencies block 中为 dagger 的编译器依赖项 apt "com.google.dagger:dagger-compiler:2.0.2" 使用 apt 配置。您还需要为 net.ltgt.apt apply plugin: "idea" 正常工作,如果您不应用 idea 插件,注解处理器会生成 Dagger 工厂类,但它没有包含在 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"
}

关于java - 如何让 Dagger 2 与 Android Studio Java 库项目一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37942717/

相关文章:

dagger-2 - dagger android 对 androidx.fragment 的支持

android - Dagger 2 : NoClassDefFoundError: dagger/producers/ProducerModule

java - 确定性语言的适用性

java - 在java中覆盖 "private"方法

java - 正则表达式和 RSS 源

gradle - 如何在Gradle项目中使用最新版本的jcommander

android - Gradle中基于多口味库的单口味模块

java - Intellij Idea java构建生产失败: java. lang.ClassCastException

android - 如何在 Android-gradle 应用程序中包含 *.so 文件?

java - Dagger 2 范围和子组件