解决 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之后直接通过
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值