今天在项目的时候,差点被一个r文件丢失给搞死,一定要看xml文件是否错误,不管是manifest,还是style,一定要看console控制台的错误信息,关键是我没有备份,好吧备份已经是很久之前的了,虽然我写代码很慢但是很久之前的代码我一点也不想拿来重新接着写啊,所以,糟心。找到的这个解决方法转载一下,谨记!!
附上地址:https://blog.csdn.net/qq_20801369/article/details/52816610
在写Android程序时,经常会遇到R文件消失的情况,还有时clean了项目也不出现,这令人非常头疼,后来我在网上搜索了一下,有各种各样的解决办法,不过都不全,我这在里汇总一下,后面再遇到此情况时可方便的参考。
一、clean方法,clean方法想必大家都熟悉,project-->clean..能解决一般的R文件生成问题。
二、删除项目文件下的gen与bin文件夹,系统会再次生成,然后再clean..,能解决重新生成gen与bin文件夹而不是覆盖文件所造成的R文件不出现问题。
三、看项目所需要的Lib是否导入齐全,比如V7包,要保证与项目在同一目录下,然后再引入
然后再clean
四、也许是AndroidManifest.xml里面的uses-sdk对应的 targetSdkVersion出错,把targetSdkVersion删除即可,只留minSdkVersion。
五、如果上面的方法都不可以,很令人抓狂,别着急,关键的方法来了:
xml本身有错误
R.Java这个文件是会自动生成的,但是如果你不小心xml文件写错了,或者不小心在编辑xml的时候点击了run(其实这个时候会运行这个xml文件,会生成一个同名的xml文件,后缀为xx.out.xml),然后正巧你游clear了一下项目,你可能会发现gen下面的R.java的文件没有了,这个在刚开始的时候很气人,真不知道怎么解决,后来发现,只要xml文件有问题,系统是绝对不会给你自动生成这个R.java文件,因为他要参照你的每张xml里的数据来生成R.java,所以自然就生成不了了。虽然知道了原因但是问题头疼,假如项目的layout xml文件有几十个,这个时候怎么办,难道要一个一个xml的看吗,呵呵,其实也不是,把console(控制台)中的信息clear一下,然后再clear项目一下,这个时候,console(控制台)中会有很多红色的信息,参照这个肯定能准确的找到哪个文件报错了。
然后跟据报错找到文件进行修改,然后再clean即可解决。
六、其实以上的操作基本可以解决R文件不出现的问题,但有时控制台会出现以下代码,也会造成R文件不生成:Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
原因是工程的JDK编译器版本不匹配,解决办法:
1.右键点击工程,然后点Android Tools 的 Fix Project Properties
2.右键点击工程, 选择属性菜单项,选择“Java Compiler” -> JDK Compliance -> Compiler compliance level,
选择合适的JDK版本。
七、其它需要注意的是:资源文件名一定要小写,文件编码问题是否对应,或转义字符是否有问题等等。
常用到的需要转义的字符有:<>&"'等,有兴趣的可以参考一下网上的文章,下面给出常用的转义后的编码:
转义字符 实际符号 名称
< < 小于号
> > 大于号
& & 和
' ' 单引号
" " 双引号
注意转义字符后面的分号(;)不可省略!
R文件跟资源文件XML关系很密切,一般R文件出现问题,都要先看看是否XML文件出现了问题。以上就是我的总结办法,欢迎互相讨论交流经验。