ButterKnife 使用详解
在Android Studio 使用的详情:
http://blog.csdn.net/ernest_kong/article/details/52262134
Dagger2.5 的使用
Android Project中有有两个build.gradle 文件
* project-level build.gradle
* module-level build.gradle
#### project-level build.gradle 配置
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’
}
}
#### module-level build.gradle 配置
dependencies {
compile ‘com.google.dagger:dagger:2.x’
apt ‘com.google.dagger:dagger-compiler:2.x’
}
当 ButterKnife8.2.1 遇见 Dagger2.5 时
当两个遇见时就冲突了。
原因:ButterKnife 和 Dagger 都是用 apt 进行 反射编译,在某一些类时产生冲突。
解决方案
- 在 module-level build.gradle 中添加
android {
…..
packagingOptions {
exclude ‘META-INF/services/javax.annotation.processing.Processor’
}
…..
} 在 dependencies 中修改为
dependencies {compile ‘com.jakewharton:butterknife:8.2.1’
apt ‘com.jakewharton:butterknife-compiler:8.2.1’compile ‘com.google.dagger:dagger:2.5’
provided ‘org.glassfish:javax.annotation:10.0-b28’
// apt ‘com.google.dagger:dagger-compiler:2.5’
// 把原来的apt 修改为provided
provided ‘com.google.dagger:dagger-compiler:2.5’}
在做之前遇到的问题
- 之前使用dagger2.2版本,还是编译不过,修改为 dagger2.5之后直接通过