17

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

4

8 回答 8

35

这对你来说可能不是这样,但有时当我使用 android.R 包中的某些东西(默认的 android 资源)并在我自己的资源包中引用任何东西之前在我的类中使用它时,Eclipse 会import android.R;在我的进口。这将与隐式查看包资源的默认行为相冲突。

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

于 2010-03-21T14:53:00.213 回答
9

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

于 2011-07-29T14:06:25.763 回答
6

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

于 2010-03-21T13:47:13.197 回答
2

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

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

如果 R.java 没有得到更新,请在 Help -> Check for Updates in Eclipse 中检查更新,并在需要时更新您的 SDK 和 ADT。

于 2011-07-05T07:21:14.867 回答
2

2天后,我找到了解决它的方法...

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

于 2011-12-07T03:24:50.950 回答
2

清洁正在工作,因为它在清洁后构建项目。所以问题是(至少在我的情况下是这样,因为几天前我关闭了自动构建)在.xml 文件中添加项目或任何内容后,eclipse 不会构建它并且不能刷新 R.java 。

于 2012-12-09T20:05:39.763 回答
1

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

于 2014-04-25T20:26:17.493 回答
1

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

您不应该修改 R.java 文件,但它并没有说明删除它的任何内容(反正我没有看到)。我发现删除 R.java 通常可以解决与资源相关的问题,因为 Eclipse 会立即使用正确分配的整数值重新生成文件。

请注意,我是 Eclipse 的初学者,所以我可能不明白删除 R.java 的后果,但到目前为止它似乎对我来说效果很好。如果我做的很糟糕,请告诉我。

于 2011-12-16T00:25:45.547 回答