R.java静态字段存在非法字符,该如何彻底清除?
解决R.java自动生成非法字符行的问题
嘿,我太懂这种挫败感了——手动删R.java里的问题行根本没用,因为R.java是Android Studio自动生成的资源索引文件,每次项目构建都会重新生成,所以你删完重启一编译,那行肯定又回来啦!
咱们得从根源上解决问题,步骤如下:
第一步:定位问题根源
全局搜索venue_name_MSB这个字符串(Android Studio里按Ctrl+Shift+F/Cmd+Shift+F),找到对应的XML资源文件——大概率是某个布局文件、values文件夹下的资源定义里,不小心给这个资源名加了非法的反引号(就是你看到的那个`符号)。第二步:修正XML里的非法字符
找到对应的XML后,把资源名里多余的反引号删掉。比如如果是@+id/venue_name_MSB写成了@+id/venue_name_MSB,直接去掉那个多余的`符号就行。记住:Android资源命名只能用小写字母、数字、下划线,不能有任何特殊字符。第三步:彻底清理并重构项目
做完上面的修正后,别直接重启,先做这几步:- 点击菜单栏的
Build > Clean Project,清空旧的构建缓存 - 再点击
Build > Rebuild Project,让AS重新生成所有资源文件包括R.java - 如果还是有问题,可以手动删除项目根目录下的
build文件夹和app/build文件夹,然后重启Android Studio再重新构建
- 点击菜单栏的
⚠️ 重要提醒:永远不要手动修改R.java文件!它是自动生成的产物,手动修改不仅没用,还可能引发更多编译错误。
内容的提问来源于stack exchange,提问作者Ssubrat Rrudra




