【发布时间】:2017-03-03 04:05:50
【问题描述】:
我正在开发一个 android 库 项目。我想在 JUnit 的测试中使用依赖注入(apt 注释处理)。我使用的 DI 框架是 Dagger2。 dagger 的所有组件/模块/类都需要仅测试,即@Component 接口和@Module 类都定义在 src/test/java 中(不在 src /main/java)
我的gradle文件如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
还有core.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
// ------- dagger 2 -----------------------------
testCompile 'com.google.dagger:dagger:2.9'
testApt 'com.google.dagger:dagger-compiler:2.9'
testProvided 'org.glassfish:javax.annotation:10.0-b28'
}
但是,我得到:
错误:(42, 0) 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [com.google.dagger:dagger-compiler:2.9] 的方法 testApt()。我知道新的 DSL 方法是 testAnnotationProcessor,但我仍然使用 com.neenbedankt.android-apt 并且还没有切换到 Jack 编译器。
【问题讨论】:
标签: android android-studio android-gradle-plugin