2012-02-06 170 views
0

在我的布局中,我重命名了所有控件的默认值(全部来自Eclipse gui),但是我注意到我的R.java文件没有正确的ID常量,所以我运行了一个项目clean并保存后,它正确地重新生成它*。Android ID全部不同步

但是,当我试图引用一个存在的id,例如机器人:layout_alignLeft =“@ ID/selectKey元素”:

  1. 如果我用手将它输入XML时得到“资源未找到”从编译器,尽管它在R.java存在与实际名称我给它的控制权。

  2. 如果我尝试使用Eclipse更新相同的属性,当我从对话框中展开“ID”时,它仍然只包含原始名称列表,而不是我给它的新列表(并且在R .java文件)

我该如何解决这个问题?看起来有些东西没有正确同步。

*顺便说一句,我不知道这是否是一个错误,但在我清理项目后,它删除了R.java文件,但后来拒绝重新创建R.java,因为我的代码引用了R对象存在。最后,我不得不在我的代码中注释每个对R的引用,以便重新生成R.java文件。所以这是一个R依赖于编译器继承来创建的情况,而依赖于R在那里编译器继承。

+0

你有没有尝试项目>干净? – ggreiner 2012-02-06 19:04:04

回答

2

如果项目 - >清洁不起作用。你可以删除“gen”文件夹(恐怖)。 Eclipse会为你重建它。

+0

删除gen文件夹的工作,不知道之间的区别和删除R.java是,但是,谢谢:) 但是,你如何解决循环依赖R.java的问题不会创建,直到所有的bug被修复和在创建R.java之前,您无法修复错误(例如,我的代码使用了R对象,所以无法编译,并且我必须在创建R.java之前注释掉引用R的每一行)。 – 2012-02-07 10:11:58

+0

这是一个很好的问题 - 创建文件夹,它的内容会自动重建,但如果是有问题的地方它有效地中止构建,如果你修正错误(如XML布局错误),然后清理项目,它应该会成功重建,而不需要进行评论的一切了。如果你看看Eclipse中的错误标签,它会告诉你这些问题,根据我的经验,列表顶部的那个通常是你的实际问题。 – 2012-02-07 10:20:36

+0

谢谢,现在全部排序。我的第一个杀手机器人应用程序几乎完成;) – 2012-02-07 11:44:34

0

手动删除gen和bin或classes文件夹,然后尝试另一个清理。

另外,它听起来像这不是问题,但要确保你在代码中导入了正确的R;即你的一个,而不是android.R之一。