升级Android Studio 3.1.2后项目开启DataBinding报错
嘿,我来帮你搞定这个升级后遇到的DataBinding依赖问题!你碰到的Failed to resolve: com.android.databinding:library:3.1.2和Failed to resolve: com.android.databinding:adapters:3.1.2错误,本质是升级到AS 3.1.2后,Gradle配置、仓库设置或者DataBinding的启用方式没适配新版本规则导致的,下面给你几个靠谱的解决步骤:
1. 确保Gradle插件版本与AS匹配,同时添加Google仓库
AS 3.1.2对应的Gradle插件版本必须是3.1.2,而且新版本的DataBinding依赖只在Google仓库里有,所以要检查项目根目录的build.gradle(Project级)配置:
buildscript { repositories { google() // 必须添加这个仓库,旧项目可能没配置 jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' // 插件版本要和AS 3.1.2对应 } } allprojects { repositories { google() jcenter() } }
如果你的项目是较新的Gradle结构(带dependencyResolutionManagement),那就在settings.gradle里确保包含Google仓库:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } } include ':app'
2. 修正DataBinding启用方式,删掉手动添加的依赖
在AS 3.0及以上版本,不需要手动添加com.android.databinding:library或adapters依赖,Gradle插件会自动帮你引入正确版本的依赖。所以你只需要在app模块的build.gradle(Module级)里开启DataBinding即可:
android { compileSdkVersion 27 // 建议和support库版本对应,比如27.x defaultConfig { // 你的项目配置 } dataBinding { enabled = true // 只需要这一行就够了 } }
如果之前你手动在dependencies块里加了那两个DataBinding相关依赖,一定要删掉,手动添加反而会导致版本不匹配冲突。
3. 同步+清理项目,消除缓存问题
做完上面的修改后:
- 点击AS工具栏的
Sync Project with Gradle Files按钮,同步Gradle配置 - 如果同步后还是报错,执行
Build -> Clean Project,再执行Build -> Rebuild Project,清理旧的编译缓存,重新构建项目
4. 可选:升级Support库版本适配
你项目里用的Support库是25.1.0,而AS 3.1.2对应的推荐Support库版本是27.1.1(Gradle 3.x插件对应Support库27.x系列)。虽然这不是导致当前报错的直接原因,但版本不匹配可能引发其他潜在问题,建议同步升级:
dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' // 其他Support库也同步升级到27.1.1版本 }
内容的提问来源于stack exchange,提问作者Kanchan

