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文件的情况。

时间: 2024-12-09 14:33:57

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

为什么android无法生成R文件

android 无法生成R文件 是件痛苦的事情,即使有时候你xml文件没有错误,他都无法生成.针对此问题, 我总结以下几个方面的原因. 一.xml本身有错误 R.java这个文件是会自动生成的,但是如果你不小心xml文件写错了,或者不小心在编辑xml的时候点击了 run(其实这个时候会运行这个xml文件,会生成一个同名的xml文件,后缀为xx.out.xml),然后正巧你游 clear了一下项目,你可能会发现gen下面的R.java的文件没有了,这个在刚开始的时候很气人,真不知道怎么 解决,后来

eclipse-Eclipse新建项目报错,无法生成R文件

问题描述 Eclipse新建项目报错,无法生成R文件 使用Eclipse新建项目时,minSdkVersion="8",targetSdkVersion="19". 自动生成appcompat v7.但是依赖包报错,项目红色感叹号.更加不可理解的是提示 D:DailyStudyAndroidNDKProjectappcompat_v7resvalues-v21styles_base_text.xml:30: error: Error retrieving paren

Android应用程序“R文件”消失_Android

其实Android自己维护这一个 public final class R类主要是跟新资源文件,这个R.java无需我们自己去修改,如果你不了解千万不要去修改它,它定义的每个资源值都是唯一的,不会和系统冲突.这个文件由ADT插件自动更新,当你编辑过Res文件后保存,这个类就会自动更新. R.java里面一般有attr.drawable.id.raw.layout.string以及xml等,根据你工程使用的资源而定.当R.java文件丢失时,就需要重建这个,但是可能会存在一些问题,比如资源无法自动

Android应用程序“R文件”消失

其实Android自己维护这一个 public final class R类主要是跟新资源文件,这个R.java无需我们自己去修改,如果你不了解千万不要去修改它,它定义的每个资源值都是唯一的,不会和系统冲突.这个文件由ADT插件自动更新,当你编辑过Res文件后保存,这个类就会自动更新. R.java里面一般有attr.drawable.id.raw.layout.string以及xml等,根据你工程使用的资源而定.当R.java文件丢失时,就需要重建这个,但是可能会存在一些问题,比如资源无法自动

用于cocos2d-x引擎(ndk)中为android项目生成编译文件列表

复制代码 代码如下:package com.leeass.generate; import java.io.File;import java.io.FileFilter;import java.io.FileNotFoundException; /** * 用于cocos2d-x引擎中android项目编译文件列表生成 * @author leeassamite * */public class GenerateAndroidMakefile { /** 分隔符 */ private stati

android项目中_做什么操作,r文件会自动生成相应的静态变量

问题描述 android项目中_做什么操作,r文件会自动生成相应的静态变量 android项目中_做什么操作,r文件会自动生成相应的静态变量 这个r文件的静态变量哪些方法会调用呢 解决方案 有听过自动生成R文件的,没听说过R文件还能自动生成静态变量的

android studio-Android studio的R文件丢失

问题描述 Android studio的R文件丢失 import的project ,但是R文件丢失了,clean和rebuild都没有用,这是怎么回事???找不到R了? 解决方案 可以去檢查你的Layout的XML,裡面如果有錯誤有時候不會直接被系統發現 且會造成系統R檔不會自動生成 錯誤改正後clean project再rebuild理論上就可以了!! 解决方案二: 肯定不是studio的项目 解决方案三: 应该是res目录下的资源文件有错误,包括命名 解决方案四: 是你的布局文件 xml 中

r文件-图片没有在R文件生成ID

问题描述 图片没有在R文件生成ID 错误日志 图片名称 R文件查找ID,没有找到 在R文件写ID,一运行就消失 百度也没有什么有用的方法 各位版主,大神,大侠,救命啊,help 解决方案 为什么在R文件中,图片的资源Id没有显示 解决方案二: R.java是自动生成的,也是只读的,你不要去编辑它.你的res中的xml文件是否有打红叉的,xml文件有错误会造成不能生成id,图片的命名你确定没弄错吗,编译能过吗? 解决方案三: 不能乱改动R.java文件啊,那是自动生成的 解决方案四: R.java

Libgdx仿安卓R文件通过Id访问资源

博客已迁移:更多精彩内容尽在AyoCrazy.com 在Libgdx开发过程中,对资源的引用是直接通过一个资源路径的字符串来获取的,这给我们开发过程中造成了很大的不便.例如我们修改了某个资源文件的路径后,编译器并不会报错,但是运行的时候却提示找不到这个文件,因为编译器无法判断这个资源路径是否为有效路径,这个时候我们需要手动去修改这个路径字符串,如果是一个两个倒还好,但如果是批量修改呢,又怎么保证路径不会输错.要解决这个问题,我们可以通过将资源路径与变量对应起来,因为编译器可以判断一个变量是否存在