android 无法生成R文件的原因剖析

简介:

android 无法生成R文件 是件痛苦的事情,即使有时候你xml文件没有错误,他都无法生成。针对此问题,我总结以下几个方面的原因。

一.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中会有很多红色的信息,参照这个肯定能准确的找到哪个文件报错了。

 下面这个事误运行了xml文件,可以看到gen的包不是空的,R.java文件也存在,并且明确的支出了是layout包中的错误

 

二。编码格式不正确

有时候由于编码格式问题,造成无法生成R文件,此时后,把编码格式变成utf-8即可

三,不知何种原因,可能是配置问题(转义字符的问题).

 

一般来说,Android项目是的R文件是由系统生成的资源的定义,但是偶尔会出现R文件不同步或是丢失的情况.

不同步的情况,即在RES文件里面已经存在了一项,但是在R.java文件中却还没有定义,
这里可以点击,Project->Clean, 选择项目,然后选中"Start a build immediately",即可重建R文件.

如果R文件丢失,一般网上的推荐的方法是,右键项目文件,点击"Android Tools"->"Fix project properties".
但是有时这种方法也不可用,那就要重新检查一下RES文件夹里面的XML资源文件是否用了转义字符.
使用我在string里面定义了一个名为"str"的字符串常量,如果在常量值里面使用转义(非法)字符,编译的时候
就会出现R文件丢失的情况.
常用到的需要转义的字符有:<>&"'等,有兴趣的可以参考一下网上的文章,下面给出常用的转义后的编码:
转义字符   实际符号  名称
&lt;         <            小于号
&gt;        >            大于号
&amp;    &            和
&apos;    '             单引号
&quot;    "             双引号

注意转义字符后面的分号(;)不可省略!

 这就是我总结无法生成r文件的情况。

目录
相关文章
|
18天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
23 1
|
18天前
|
Shell Android开发
Android系统 init.rc文件详解
Android系统 init.rc文件详解
34 0
|
19天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
76 0
|
3月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
35 0
|
1天前
|
Android开发
android string.xml文件中的整型和string型代替
android string.xml文件中的整型和string型代替
|
4天前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
9 0
|
4天前
|
XML Android开发 数据安全/隐私保护
android 11后文件读写访问权限申请
android 11后文件读写访问权限申请
11 0
|
4天前
|
JSON Android开发 数据格式
Android 打开系统文件管理器,并返回选中文件的路径
Android 打开系统文件管理器,并返回选中文件的路径
11 0
|
18天前
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
18 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
18天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
54 1