作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的项目与 Butterknife 配合得很好做 View 注入(inject)。但我随后需要添加 Dagger以便注入(inject)依赖项。
我添加了 Annotation Processor Tool具有适当 Dagger 要求的 Gradle 插件(为简洁起见,仅显示修改的部分);
buildScript {
repositories {
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
...
classpath 'com.jimdo.gradle:gradle-apt-plugin:0.2-SNAPSHOT'
}
}
apply plugin: 'apt'
dependencies {
apt "com.squareup.dagger:dagger-compiler:${daggerVersion}"
...
}
此时,当我构建并运行应用程序时,标有 @InjectView
注释的属性不会被注入(inject) Butterknife 发出的以下调试消息;
D/ButterKnife﹕ Looking up view injector for com.example.MainActivity
D/ButterKnife﹕ Not found. Trying superclass com.example.FactListAbstractActivity
D/ButterKnife﹕ Not found. Trying superclass android.app.Activity
最佳答案
事实证明,我需要做的就是添加另一个 apt 依赖项,以便让 Annotation Processor Tool 拾取 Butterknife 中包含的处理器。这是除了将其作为编译时依赖项包括在内;
dependency {
apt "com.jakewharton:butterknife:${butterknifeVersion}"
compile "com.jakewharton:butterknife:${butterknifeVersion}"
}
关于android - 如何让 Dagger 和 Butterknife 与 Gradle 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20742900/
我是一名优秀的程序员,十分优秀!