Android Data Binding编译报错:NumberpickercustomlayoutBinding类名文件名不匹配
解决Data Binding生成类与文件名不匹配的构建错误
检查布局文件命名规范
Data Binding的Binding类名是根据布局文件名的下划线转大驼峰规则生成的(比如number_picker_custom_layout.xml对应NumberPickerCustomLayoutBinding)。如果你的布局文件名是全小写无下划线格式(如numberpickercustomlayout.xml),生成的类会是NumberpickercustomlayoutBinding,此时要确保布局文件名本身是全小写,不能出现大小写混合的情况(比如NumberPickerCustomLayout.xml),否则会导致生成的类名和文件名不匹配。禁止手动修改build目录下的自动生成文件
build目录里的Binding类文件是构建时自动生成的,手动修改后会被下次构建覆盖,完全没用。正确操作是:- 点击顶部菜单栏
Build->Clean Project - 再点击
Build->Rebuild Project
或者用命令行执行:
./gradlew clean ./gradlew assembleDebug- 点击顶部菜单栏
确认Data Binding配置正确
检查app模块的build.gradle(或build.gradle.kts)是否正确启用Data Binding:
Groovy版本:android { ... buildFeatures { dataBinding true } }Kotlin版本:
android { ... buildFeatures { dataBinding = true } }检查布局文件根标签
确保布局文件的根标签是<layout>,而非普通布局容器,示例:<layout xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 布局内容 --> </LinearLayout> </layout>未用
<layout>包裹的布局不会生成正确的Binding类,可能引发命名异常。清除Android Studio缓存
若以上操作无效,尝试清除缓存并重启:
点击File->Invalidate Caches...,勾选Invalidate and Restart后重启AS。
内容的提问来源于stack exchange,提问作者SAM
相关产品推荐
相关产品推荐

