R.java was modified manually! Reverting to generated version!(R文件丢失异常原因汇总)

引言:

R文件丢失异常在java开发中是个比较常见的异常,造成这个异常的原因可能非常微小,但是给Android开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己的粗心大意而捶胸顿足,哀叹不已。


异常提示:

R.java was modified manually! Reverting to generated version!
或者项目中gen目录下没有生成R文件,运行项目的时候会报错

我的错误:

最近一次我出现这个错误是因为新电脑中的Eclipse中指向的Android sdk路径中带有中文路径,项目workspace中也有中文路径,在我将这两个中文路径改完之后,R文件就重新恢复了。
比较坑的是另一个同事的错误原因,在他出现R文件丢失异常之后,Android技术组长来看了半天,没有发现哪里错误,最后出动总监大人,总监大人花费了不少时间之后,终于发现错误原因:项目命名为Android_demo,但是其中的下划线_是中文打出的,不是英文,所以出现了这个问题,同事的电脑是MAC,而我的电脑是windows,我并没有在自己的电脑上找出怎么打出中文的_,所以出现这个问题的概率还是很小的。

其他原因:

下面我们来说说其他可能造成R文件丢失的原因:

1.项目编码不对,在导入其他人项目的时候可能出现,在这里要建议大家最好把自己的eclipse编码设置为UTF-8最好,大部分项目都会使用这个编码,如果设置这个编码之后你导入的项目还是出现乱码、R文件丢失之类的问题,那你可以换成GBK编码,如果你要导入的项目是其他编码,那我只能祝你好运,多花点时间找出这是什么编码。

Eclipse设置默认编码:Window——Preferences——General——workspace,然后在下方的Text file encoding中选择Other——UTF-8(注意,这是一个输入框,不仅仅是下拉选择框,当你找不到GBK编码的时候,可以手动输入)即可。

Eclipse中单独项目设置编码:右键项目——Properties——Resource——Text file encoding,在Other中选择UTF-8即可(这里也可以手动输入编码).

2.xml(包括layout布局、values资源以及其他xml文件)文件出错:可能是你xml格式出错,也可能是你的xml中某些属性忘了设置,甚至可能是你引用了错误的xml文件。
解决办法:xml格式出错的时候一般res文件夹及其子文件夹都会出现一个小叉号,这时候就要好好检查相应的报错的xml文件了,但是如果没有报错,那你可以试试将项目的xml文件都恢复到没有出现异常之前的版本,然后一一检查你修改后的xml文件。

3.xml文件和drawable下资源文件不可以为大写字母和数字
解决办法:将相应文件名改为小写字母或者小写字母和数字混搭的命名。

4.Eclipse或者adt插件版本问题,在adt19版本的时候就出现过bug
解决办法:升级最新已经修复bug的版本或者卸载现有版本,使用成熟的旧版本插件,建议使用android开发官网的ADT

5.项目sdk版本太低或者版本不对
解决办法:右键项目——properties——Android,选择相应的sdk版本,点击Apply——OK即可。

下面还有几种解决措施可以 帮助大家修复R文件丢失异常:
  • 选择Eclipse菜单栏——Project,点击Build Automatically,使其处于勾选状态即可,这样在你修改完项目之后Eclipse就会及时的帮你自动编译,跟新R文件;
  • 选中项目,Project——Clean...,这样会清除掉旧版本的各种生成文件,并产生最新的项目生成文件,跟新R文件;
  • 右键项目,Android Tools——Fix Project Properties,会修复项目中的问题。

好了,以上就是我知道和总结的R文件丢失异常了,如果大家还有其他的产生这个异常的情况和解决办法,欢迎留言讨论,谢谢~~~
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值