zoukankan      html  css  js  c++  java
  • 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文件的情况。

  • 相关阅读:
    js冒泡排序
    HTML5 canvas 计时器
    centos 6.4安装杀毒软件clamAV 0.98[转]
    PHP大文件下载
    如何在 Eclipse 中使用插件构建 PHP 开发环境[转]
    CentOS 单用户模式:修改Root密码和grub加密[转]
    CentOS 6.0 VNC远程桌面配置[转]
    gprof使用介绍 (gcc -pg) [转]
    VMware NAT端口映射外网访问虚拟机linux
    shell判断文件是否存在[转]
  • 原文地址:https://www.cnblogs.com/manuosex/p/3416740.html
Copyright © 2011-2022 走看看