作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个应用程序模块(这是我的应用程序)和一个 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/
我是一名优秀的程序员,十分优秀!