R.java文件未使用UI元素的id进行更新

时间:2010-03-21 13:40:22

标签: android adb

我在res \ layout文件夹的main.xml文件中添加了一些UI元素,当我尝试通过调用R.layout.my_uielement访问它们时,我创建的UI元素不存在。即使我添加了一个包含UI元素的新xml文件,它仍然不会显示在R.layout类中。我已经检查了他们的ID,他们的格式正确(我认为):android:id="@+id/my_button"。可能是什么问题呢?我是否需要先编译代码?
更新的:
我已经尝试adb kill-server然后adb start-server了。它似乎没有帮助。我也尝试了R.id.my_uielement,它也没有注册。

8 个答案:

答案 0 :(得分:35)

这可能不是你的情况,但有时当我使用android.R包中的东西(默认的android资源)并且我在我的类中使用它之后再引用我自己的资源包中的任何东西,Eclipse添加了我的导入中的import android.R;语句。这将与隐式查看程序包资源的默认行为冲突。

检查import Android.R;的导入语句。如果它在那里,删除它。而且,如果您使用的是android.R中的任何内容,请在代码中使用它时完全限定它。

答案 1 :(得分:9)

清洁项目工作正常。在Eclipse中,如果只更改一些xml组件,它并不总是生成新的R文件。清洁它。

答案 2 :(得分:6)

使用R.id.your_ui_element,而不是R.layout.your_element

答案 3 :(得分:2)

我也遇到了这个问题。 R.java既没有生成也没有更新。

如果在创建项目时没有生成,则运行“empty”项目。将自动生成带有资源引用的R.java。

如果R.java未获得更新,请在“帮助”中检查更新 - >检查更新 在Eclipse中,如果需要,可以更新SDK和ADT。

答案 4 :(得分:2)

2天后我找到了解决问题的方法......

我已经在我的邮件中保存了一半完成的项目,所以当R.java消失时我只是用旧的R.java文件替换它,这修复了很多错误,然后进行了必要的更改并构建了项目(建立它不干净)...我不知道干净和构建是否执行相同的工作..但每次我清理它,R.java过去看不见...

答案 5 :(得分:2)

清洁正在运行,因为清理后构建项目。所以问题是(至少在我的情况下,因为我几天前关闭了自动构建),在你添加一个项目或.xml文件中的任何东西之后,eclipse不会构建它而不能刷新R.java。

答案 6 :(得分:1)

我注意到当我将项目添加到strings.xml文件或其他地方时,我的R.java文件并不总是正确更新。如果我使用一个新值,我添加了像R.string.newString,实际的整数值可能仍然指向R.string.oldString或其他任何东西(它似乎通常是strings.xml中新元素正上方或下方的元素,但我还没有确定模式。)

你不应该修改R.java文件,但它没有说删除它(不是我见过的)。我发现删除R.java通常会修复与资源相关的问题,因为Eclipse会立即使用正确分配的整数值重新生成文件。

请注意,我是Eclipse的初学者,所以我可能无法理解删除R.java的后果,但到目前为止它似乎对我有用。如果我正在做的非常糟糕,请告诉我。

答案 7 :(得分:1)

这些都不适合我! 我可以访问@+id/foo的唯一方法是myPackage.R.id.foo