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

我的项目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 } 

我的模块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' } 

这个怎么了,如何在Android studio 2.2中使用annotationProcessor函数,如何正确configurationdagger2注释处理器?

新的杰克注释处理器

Solutions Collecting From Web of "android studio 2.2如何在不使用android-apt插件的情况下应用dagger2"

是的,在Android Gradle插件2.2.0发行版中,注释处理不再需要android-apt插件。 aptfunction包含在最新的Android Gradle插件中。 现在叫做annotationProcessor ,这就是你在构build脚本中所拥有的。 但是,脚本中有一些configuration错误的东西。

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

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

依赖声明块看起来是合法的。 因此,请尝试进行上述更改以查看是否可行。

你不会插入插件类path。 在您的项目构build中删除以下行:

 classpath 'com.google.dagger:dagger-compiler:2.2' 

并插入:

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

然后在你的模块build.gradle中,在应用插件android应用程序之后添加下面的代码:

 // add after applying plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' 

将以下行添加到您的依赖关系中:

 // apt command comes from the android-apt plugin apt 'com.google.dagger:dagger-compiler:2.2' compile 'com.google.dagger:dagger:2.2' provided 'javax.annotation:jsr250-api:1.0' 

欲了解更多信息请阅读:
https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2

和样品项目,请访问这里:
https://github.com/spirosoik/AndroidArchitecturePadawans