android studio 2.2如何在没有android-apt插件的情况下应用dagger2

bel*_*ian 7 android android-studio

我的项目build.gradle

buildscript {
     repositories {
     jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
    classpath 'com.google.dagger:dagger-compiler:2.2'
    classpath 'com.google.guava:guava:19.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
   }
}
allprojects {
     repositories {
        jcenter()
     }
}

task clean(type: Delete) {
     delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

我的模块build.gradle

android {
compileSdkVersion 24
buildToolsVersion '24.0.0'

defaultConfig {
    applicationId "com.aber.app.acgtalk"
    minSdkVersion 19
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    jackOptions {
        enabled true
    }
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

ext {
supportLibVersion = '24.0.0'
}

dependencies {
    compile 'com.google.dagger:dagger:2.2'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.2'
    debugAnnotationProcessor 'com.google.dagger:dagger-compiler:2.2'
    provided  'javax.annotation:jsr250-api:1.0'
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile "com.android.support:appcompat-v7:${supportLibVersion}";
    compile "com.android.support:recyclerview-v7:${supportLibVersion}";
    compile "com.android.support:design:${supportLibVersion}";
    compile "com.android.support:support-v13:${supportLibVersion}";
    compile "com.android.support:support-annotations:${supportLibVersion}";
    compile "com.android.support:gridlayout-v7:${supportLibVersion}";
    compile "com.android.support:cardview-v7:${supportLibVersion}";
    compile "com.android.support:preference-v14:${supportLibVersion}";
    compile 'com.squareup.okhttp3:okhttp:3.2.0';
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile 'com.squareup.retrofit2:converter-gson:2.0.2'
}
Run Code Online (Sandbox Code Playgroud)

这有什么问题,如何在Android studio 2.2中使用annotationProcessor函数,如何正确地对dagger2注释处理器进行配置?

新的Jack注释处理器

Aar*_* He 9

是的,使用android gradle plugin 2.2.0发行版,android-apt注释处理不再需要插件.该apt功能包含在最新的android gradle插件中.它annotationProcessor现在被称为你在构建脚本中所拥有的.但是,脚本中有一些配置错误的东西.

首先,不应将匕首编译器添加到类路径中.所以删除这一行:classpath 'com.google.dagger:dagger-compiler:2.2'.

而你正在使用android gradle插件版本alpha3.尝试使用最新版本,因此请更改为classpath 'com.android.tools.build:gradle:2.2.2'.

依赖声明块看起来合法.因此,尝试进行上述更改以确定它是否有效.