升级Android Studio 3.1.1后克隆项目遇依赖缺失问题求解决方案
解决Android Studio 3.1.1中
Could not find com.android.databinding:library:3.1.1的问题 嘿,我来帮你搞定这个DataBinding的依赖报错!这个问题其实是因为Android Gradle Plugin(AGP)3.1.x版本开始,DataBinding的依赖结构发生了变化——原来单独的com.android.databinding:library已经被整合到AGP内部,不再需要手动引用了。下面是针对3.1.1版本的具体解决步骤:
1. 修正根目录build.gradle的仓库配置
首先确保项目根目录的build.gradle里,google()仓库排在最前面(Google的仓库才包含AGP相关的DataBinding组件),配置如下:
buildscript { repositories { google() // 必须放在jcenter()之前 jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.1' // 这里不需要额外添加databinding的classpath依赖! } } allprojects { repositories { google() jcenter() } }
2. 正确启用DataBinding(模块级build.gradle)
在你的app模块(或其他需要DataBinding的模块)的build.gradle中,确保在android块内开启DataBinding,不需要手动添加com.android.databinding:library依赖:
android { compileSdkVersion 28 // 对应你项目的实际版本即可 defaultConfig { applicationId "com.your.app" minSdkVersion 19 targetSdkVersion 28 // ...其他项目配置 } // 开启DataBinding dataBinding { enabled = true } } dependencies { // 这里只需要添加你的项目业务依赖,不用加databinding:library implementation 'com.android.support:appcompat-v7:28.0.0' // ...其他依赖 }
3. 清理并重建项目
做完上面的配置后,执行以下操作清除缓存并重新构建:
- 点击Android Studio顶部工具栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 也可以用命令行执行:
./gradlew clean build(Mac/Linux)或gradlew clean build(Windows)
4. 排查第三方依赖冲突(如果上述步骤无效)
如果还是报错,可能是某个第三方库强制依赖了旧版的DataBinding库。你可以通过以下命令查看依赖树:
./gradlew app:dependencies // 把app替换成你的模块名称
找到包含com.android.databinding:library的依赖,然后在dependencies块中用exclude排除它,比如:
implementation('com.some.thirdparty:library:1.0.0') { exclude group: 'com.android.databinding', module: 'library' }
这样处理后,3.1.1版本的AGP就能正确管理DataBinding的依赖,不需要升级到Canary版本啦!
内容的提问来源于stack exchange,提问作者Siddhivinayak
相关产品推荐
相关产品推荐

