2017-03-02 76 views
0

我正在开发一个android库项目。我想在JUnit的测试中使用依赖注入工作(apt注释处理)。我使用的DI框架是Dagger2。 所有匕首的组件/模块/类的需要是测试仅即@Component接口和@Module类都在的src /测试/ JAVA(NOT中的src /主/爪哇)testApt Android Studio中的Android库

定义我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' 
} 

但是,我越来越:

 
Error:(42, 0) Could not find method testApt() for arguments [com.google.dagger:dagger-compiler:2.9] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 

我知道新的DSL方法是testAnnotationProcessor但我还是用com.neenbedankt.android-apt并没有切换到杰克编译呢。

回答

0

答案结果非常简单。我只是需要升级android-apt插件版本1.8支持testApt

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'