Android DataBinding求助:activity_login.xml重复类、BR未生成报错
我之前也碰到过类似的DataBinding诡异报错,结合你描述的情况(项目里明明只有一个activity.xml,却报activity_login.xml存在重复类、BR未生成),可以按下面的步骤逐一排查解决:
清理重建项目
这是最常见的解决方式,先点击Android Studio顶部的Build > Clean Project,完成后再执行Build > Rebuild Project。很多时候是旧的生成缓存没清理干净,导致系统误判存在重复类,清缓存后重新编译就能解决。排查隐藏的同名布局文件
虽然你说项目里只有一个activity.xml,但可以去文件管理器里搜一下整个项目的res目录,看看有没有在layout-xxx(比如适配不同屏幕尺寸、语言的资源目录)下遗留了activity_login.xml?或者之前创建过这个文件后来删除但没彻底清理?这些隐藏的文件会导致DataBinding生成类时冲突。检查DataBinding配置与布局语法
首先确认app模块的build.gradle里正确开启了DataBinding:android { ... buildFeatures { dataBinding true } }然后检查你的activity.xml的DataBinding语法是否正确:根标签是不是
<layout>,有没有拼写错误的变量定义、BR引用?布局语法错误会直接导致BR文件生成失败,进而触发这类奇怪的报错信息。手动删除自动生成的文件
找到项目的build/generated/data_binding_base_class_source_out目录,删掉里面的所有内容,然后重新编译。这些自动生成的Binding类和BR文件有时候会残留旧的错误内容,手动删除后能强制系统重新生成正确的文件。清空Android Studio缓存
点击File > Invalidate Caches...,选择Invalidate and Restart。IDE本身的缓存出问题也可能导致这种识别错误,重启后就能恢复正常。
内容的提问来源于stack exchange,提问作者Dipendra Sharma

