升级Gradle7.0.1与Kotlin1.5.30后DataBinding出现类路径依赖错误如何解决
问题解决步骤
- 显式添加Data Binding编译器依赖
AGP 7.0+版本不会自动传递Data Binding的编译器依赖,需要在应用模块build.gradle的dependencies代码块中添加与你AGP版本一致的编译器依赖:
kapt "com.android.databinding:compiler:7.0.1"
- 替换废弃的生命周期依赖
你当前使用的androidx.lifecycle:lifecycle-extensions:2.2.0已经停止维护,极易和高版本AGP/Kotlin产生兼容冲突,删除该依赖,按需添加对应功能的官方维护依赖:
// 用到ViewModel就添加 implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0" // 用到LiveData就添加 implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0"
- 新增KAPT兼容配置
在应用模块build.gradle的android代码块中添加如下配置,解决KAPT和Data Binding V2版本的兼容问题:
kapt { arguments { arg("android.databinding.enableV2", "true") } }
- 清理缓存重启构建
依次点击Android Studio菜单栏File -> Invalidate Caches...,勾选Clear file system cache and local history后点击Invalidate and Restart,等待项目重启后自动同步完成即可。
相关疑问解答
不需要移除layout标签,Data Binding的所有XML绑定能力(变量绑定、表达式绑定等)都必须依赖外层的layout标签才能生效,完成上述配置后即可正常使用layout标签,不会再触发报错。
内容的提问来源于stack exchange,提问作者Pushpendra Kumar
相关产品推荐
相关产品推荐

