R.java 文件不能生成原因探究


分类: Android   1403人阅读  评论(1)  收藏  编辑  删除

近日开发一个Android项目,为了在新项目中调用此前一个项目,将此前的项目变为Library Project, 新的项目引用旧的项目。开发工具是 Eclipse Helios.

创建好新项目后,发现Eclipse 中R.java 无法自动生成,R.java 文件不能自动生成的原因在StackOverflow上有较多的探讨,一个常见的原因是layout xml 使用了Android 2.2 新引入的元素,例如,match_parent, 而项目的编译目标版本却设置为2.1. 我的新项目恰好是编译目标是2.1, 我将编译目标改为2.2后症状消失,但是我的新项目中的layout xml 内容很简单,我确认没有使用2.2 的新元素。仔细查看Eclipse 的错误提示也没有有效的线索。

为了弄清错误的真正原因,折腾了很长时间。在Eclipse 中一次偶尔的操作之后——记不清是什么操作了,好像是取消自动编译,然后clean 旧的项目,clean 新的项目,再build 旧项目,build 新项目——突然,Eclipse 提示旧项目有编译错,而且是layout xml 文件的错误,仔细一看,知道问题出在哪儿了。

原来,我的旧项目设定编译目标是2.2, 而且layout xml 文件中有match_parent, 而新项目却设定为编译目标2.1, 新项目的设定随项目包含关系传导到了旧项目中,造成Eclipse 的自动生成R.java 的机制不正常了。

坑爹的是Eclipse 开始一直不能精确报告错误原因,找了这么长时间的原因,一定得记下来,希望这篇小文能有点用处。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值