解决Dagger2与ButterKnife冲突

发现问题

  • 使用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'
    

猜你喜欢

转载自blog.csdn.net/wei_ai_n/article/details/75389911
今日推荐