使用Android Studio 3.1.1添加Butter Knife时Build Gradle构建失败
解决Android Studio 3.1.1添加Butter Knife构建失败的问题
兄弟,我之前也在AS3.1.1版本里折腾过ButterKnife的配置,结合你用的是Support库27.1.1的情况,给你整理了一套能适配的配置方案,按步骤来应该能搞定构建失败的问题:
第一步:配置项目根目录的build.gradle
首先要在项目级的构建文件里添加ButterKnife的gradle插件依赖,注意要确保仓库包含jcenter()(旧版本ButterKnife托管在这里):
buildscript { repositories { google() jcenter() // 必须添加这个仓库 } dependencies { classpath 'com.android.tools.build:gradle:3.1.1' // 你的AS对应的gradle插件版本,保持不变 classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1' // 对应ButterKnife 8.x版本的插件 } } allprojects { repositories { google() jcenter() // 同样要添加 } }
第二步:配置模块级的build.gradle
接下来修改你提供的模块依赖文件,需要做两处修改:
- 应用ButterKnife插件
- 添加ButterKnife的核心依赖和注解处理器依赖
修改后的代码如下:
apply plugin: 'com.android.application' apply plugin: 'com.jakewharton.butterknife' // 新增这一行,应用插件 android { // 你的原有配置,比如compileSdkVersion、defaultConfig等,保持不变 compileSdkVersion 27 defaultConfig { applicationId "你的应用ID" minSdkVersion ... targetSdkVersion 27 ... } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' // 新增ButterKnife依赖 implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' }
关键注意事项
- 版本匹配很重要:你用的是Support库(不是AndroidX),所以绝对不能用ButterKnife 9.x及以上版本,那些版本只支持AndroidX。8.8.1是Support库适配的最后一个稳定版本,刚好匹配你的27.1.1 Support库。
- 仓库必须包含jcenter:旧版本ButterKnife没有上传到mavenCentral,所以必须确保项目和模块的repositories里都有
jcenter()。 - 清理重建项目:配置完成后,先执行
Build -> Clean Project,再执行Build -> Rebuild Project,避免缓存导致的构建问题。
如果还是遇到失败,可以检查是否有Support库版本冲突,或者是否误写了依赖类型(比如Java项目用了kapt而不是annotationProcessor)。
内容的提问来源于stack exchange,提问作者user1712775
相关产品推荐
相关产品推荐

