我在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
,它也没有注册。
答案 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
。