解决 ButterKnife8.2.1 与 Dagger2.5 冲突
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之后直接通过
更多相关文章
- WebViewJavascriptBridge实现js与android和ios原生交互
- Android开发整理
- [置顶] android Properties的使用
- 使一个button无效时变灰
- android adb 命令发送 keyevent
- Cocos2d-x权限问题
- Gradle离线配置、.android、.AndroidStudio、.gradle、.m2缓存文
- android 录音 Android(安卓)使用AudioRecord录音相关和音频文件
- Androidの异常总结