19

文档摘录:

Eclipse 有时喜欢在使用资源的文件顶部添加 import android.R 语句,尤其是当您要求 eclipse 对导入进行排序或以其他方式管理时。这将导致您的制造中断。留意这些错误的导入语句并删除它们。

我的问题:为什么?为什么日食继续这样做?

我已经使用 Eclipse 开发 Android 应用程序已经有一段时间了,但我一直无法理解为什么 Eclipse 会做这样的事情。

当我使用Ctrl++Shift组织O我的导入语句时,import android.R会自动添加。突然间,我的正确代码突然被红色错误覆盖,说R 无法解决。对于初学者来说,这真的很可怕,因为他不知道自己做错了什么。

在另一种情况下,假设我的布局文件有问题并且R.java没有生成,它说R cannot be resolved,因为 R.java 由于错误而没有生成。当我将光标移动到任何错误时,它建议我import android.R.

在Android上工作了一段时间后,我知道永远不要导入android.R,但是我一直无法理解为什么eclipse一直建议它,坦率地说,添加import android.R从来没有解决我的任何问题. 它只是增加了现有的问题,这些问题在开发的最初几天确实很痛苦。

那么,有谁知道 eclipse 提出错误导入建议的原因?这只是一个错误吗?我不认为这是一个错误,因为至少在 Android 文档中提到它之后它会得到修复。

如果它不是一个错误,那么它的真正目的是android.R什么?它究竟指的是什么?

您的意见/经验将非常有帮助!

谢谢!

4

3 回答 3

12

这不是错误。在某些情况下android.R可以提供帮助并解决问题。

android.R是一个 R.java 文件,就像您在自己的项目中拥有的文件一样。您项目中的一个 ( your.packagename.R) 包含对您/res文件夹下资源的引用,例如布局、可绘制文件、XML 文件、原始文件、字符串等。

另一方面,该android.R文件包含对 Android 内置的某些默认资源的引用,例如simple_list_item_1.

Eclipse 有时会建议并自动导入它,就好像您的项目的 R 文件由于 XML 错误或其他原因尚未生成一样,您的代码将引用一个不存在的文件。通过导入android.R,eclipse 确保您的代码引用了一个存在的类。但是,android.R不太可能拥有与您相同的资源,这将引发另一组错误。

于 2013-03-09T11:12:01.577 回答
3

如果您通过 android 工具重命名您的包名并且不在您的代码中使用相同的名称重命名基本包名,Eclipse 也将始终尝试在您的类中自动导入 android.R,因为他会假设您的文件中有两个 R。

于 2013-09-04T09:53:42.877 回答
0

试试这个...

窗口 -> 首选项 -> Java -> 编辑器 -> 保存操作

取消选中“组织导入”。希望那会做到。

在这个设置之后,它对我有用。

于 2015-12-22T10:24:33.270 回答