解决Dagger2与ButterKnife冲突

来源:互联网 发布:拉圈圈助手源码 编辑:程序博客网 时间:2024/06/07 05:57

发现问题

  • 使用ButterKnife引入Dagger2后发现点击以及控件的查找均失效,主要是butterknife和dagger2都用到了annotation;

解决方法

  1. 关于注解的问题[点击跳转](“http://blog.csdn.net/xx326664162/article/details/68490059“)
  2. 按照官方正常配置App的build

    dependencies {
    classpath 'com.android.tools.build:gradle:2.3.2'
    //配置butterKnife
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.6.0'
    //配置Dagger2
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
  3. 项目build中配置

    apply plugin: 'com.jakewharton.butterknife'apply plugin: 'com.neenbedankt.android-apt'//在android中配置 /* 解决Dagger2跟ButterKnife的冲突 */    packagingOptions {        exclude 'META-INF/services/javax.annotation.processing.Processor'    }    //配置ButterKnife:注意使用compile导包 : compile会编译到最后的APK或library,apt不会  compile 'com.jakewharton:butterknife:8.6.0'  compile 'com.jakewharton:butterknife-compiler:8.6.0'    //Dagger2的使用注意使用provided引用butterKnife中的library解决冲突  compile 'org.glassfish:javax.annotation:10.0-b28'  compile 'com.google.dagger:dagger:2.5'  provided 'com.google.dagger:dagger-compiler:2.5'