2017-03-02 74 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'