Gradle构建报dataBindingGenBaseClassesDebug错误not a valid name: continue如何解决
报错原因说明
你遇到的not a valid name: continue报错是DataBinding/ViewBinding生成绑定类时触发的:continue是Java/Kotlin的保留关键字,无法用作类的字段名、变量名,只要项目中有任意需要生成到绑定类/R类的命名使用了continue,就会触发该报错。你排查时遗漏了以下可能的场景:
排查步骤
- 检查所有布局文件的控件id:全局搜索项目中是否存在
android:id="@+id/continue"的配置,ViewBinding会把id直接转为绑定类的字段,使用关键字会直接报错 - 检查所有res资源文件的命名:全局搜索
name="continue"的配置,包括strings.xml、colors.xml、dimens.xml、drawable资源等,资源名会生成到R类的字段中,同样不能使用关键字 - 检查带
<layout>根标签的DataBinding布局:如果你的布局中定义了<variable name="continue" type="xxx"/>,变量名使用关键字也会触发该报错 - 注意:你的build.gradle中只显式开启了viewBinding,但只要项目中存在任意带
<layout>根标签的布局,AGP会自动触发DataBinding的编译流程,也就是你报错的dataBindingGenBaseClassesDebug任务
修复方案
将所有命中的continue命名修改为非关键字即可,比如改为btn_continue、tip_continue这类带前缀的命名。修改后可以先执行./gradlew clean清理构建缓存,再重新执行构建即可。
内容的提问来源于stack exchange,提问作者Amin Pial
相关产品推荐
相关产品推荐

