【问题标题】:testApt for android-library in Android StudiotestApt for Android Studio 中的 android-library
【发布时间】: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


    【解决方案1】:

    事实证明,答案非常简单。我只需要将 android-apt 插件版本升级到支持 testApt

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2012-09-20
      • 1970-01-01
      相关资源
      最近更新 更多