我在 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 回答
这对你来说可能不是这样,但有时当我使用 android.R 包中的某些东西(默认的 android 资源)并在我自己的资源包中引用任何东西之前在我的类中使用它时,Eclipse 会import android.R;
在我的进口。这将与隐式查看包资源的默认行为相冲突。
检查您的导入语句import Android.R;
。如果它在那里,请将其删除。而且,如果您使用 android.R 中的任何内容,请在代码中使用它时完全限定它。
清洁项目工作正常。在 Eclipse 中,如果您只是更改一些 xml 组件,它并不总是会生成一个新的 R 文件。清洁就可以了。
使用 R.id.your_ui_element,而不是 R.layout.your_element
我也遇到了这个问题。R.java 既没有生成也没有更新。
如果创建项目时未生成R.java ,请运行“空”项目。将自动生成带有资源引用的 R.java。
如果 R.java 没有得到更新,请在 Help -> Check for Updates in Eclipse 中检查更新,并在需要时更新您的 SDK 和 ADT。
2天后,我找到了解决它的方法...
我已经在我的邮件中保存了一半完成的项目,所以当R.java
我消失时我只是用旧R.java
文件替换它,这修复了很多错误,然后进行了必要的更改并构建了项目(构建它不干净)......我不知道clean 和 build 是否执行相同的工作..但每次我清理它时,R.java
过去都是隐形的......
清洁正在工作,因为它在清洁后构建项目。所以问题是(至少在我的情况下是这样,因为几天前我关闭了自动构建)在.xml 文件中添加项目或任何内容后,eclipse 不会构建它并且不能刷新 R.java 。
这些都不适合我!我可以访问的唯一方法@+id/foo
是通过myPackage.R.id.foo
.
我注意到当我将项目添加到我的 strings.xml 文件或其他地方时,我的 R.java 文件并不总是得到正确更新。如果我使用像 R.string.newString 这样添加的新值,则实际的整数值可能仍指向 R.string.oldString 或其他任何值(它似乎通常是 strings.xml 中新元素正上方或下方的元素,但是我还没有确定模式)。
您不应该修改 R.java 文件,但它并没有说明删除它的任何内容(反正我没有看到)。我发现删除 R.java 通常可以解决与资源相关的问题,因为 Eclipse 会立即使用正确分配的整数值重新生成文件。
请注意,我是 Eclipse 的初学者,所以我可能不明白删除 R.java 的后果,但到目前为止它似乎对我来说效果很好。如果我做的很糟糕,请告诉我。