7

我的项目与Butterknife配合得很好,可以进行视图注入。但是我随后需要添加Dagger以注入依赖项。

我添加了带有适当 Dagger 要求的Annotation Processor Tool 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注释的属性没有被注入 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
4

1 回答 1

7

结果我需要做的就是添加另一个 apt 依赖项,以便让 Annotation Processor Tool 拾取 Butterknife 中包含的处理器。这是除了将其作为编译时依赖项之外的内容;

dependency {
    apt "com.jakewharton:butterknife:${butterknifeVersion}"

    compile "com.jakewharton:butterknife:${butterknifeVersion}"
}
于 2013-12-23T11:48:25.363 回答