Butterknife导入Android Studio问题

目前ButterKnife最新版为10.1.0版本,由于最新版添加了AndroidX支持,故在使用时要注意。

处理方法1:降低版本

如果还是使用com.android.support:appcompat-v7这种Android依赖库的话(目前最高版本28.0.0),就不要使用最高版本的ButterKnife,要是用低版本的,建议使用com.jakewharton:butterknife:9.0.0。

我的配置如下: AS版本:3.4.2   gradle版本:5.1.1 

项目的gradle添加如下:

dependencies {
    classpath 'com.android.tools.build:gradle:3.4.2'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0'
}

app的gradle配置如下:

android {
   compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
   }
}
dependencies {
   implementation 'com.jakewharton:butterknife:9.0.0'    
   annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0'
}

如果在module中使用的话,配置如下:

在module的build.gradle顶部添加apply plugin: 'com.jakewharton.butterknife',目的是为了生成R2文件,因为在module使用的是R2.id,不是R.id。原因是 ButterKnife 的注解必须是常量,在Library 中的 R.id.*并不是常量,生成的 R2才是final修饰的常量。

dependencies {
   implementation 'com.jakewharton:butterknife:9.0.0'
   annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0'
}

处理方法2:保持使用AndroidX版本

项目的gradle添加如下:

dependencies {
    classpath 'com.android.tools.build:gradle:3.4.2'
}

app的gradle配置如下:


android {
    compileSdkVersion 29//最低28
    buildToolsVersion "29.0.2"//最低28
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 29//最低28
    }

    compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
   }
}
dependencies {
   implementation 'com.jakewharton:butterknife:10.0.0'    
   annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

最后不要忘了全局性绑定对象   ButterKnife.bind(this); 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值