在Eclipse中导入android.R:为什么?

摘自文档 :

Eclipse有时喜欢在使用资源的文件顶部添加导入android.R语句,尤其是当您要求eclipse对排序或以其他方式管理导入时。 这会导致你的作品破裂。 注意这些错误的import语句并删除它们。

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

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

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

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

在Android上工作了很长一段时间之后,我知道永远不会导入android.R,但我从来没有理解为什么eclipse一直在暗示它,坦率地说,添加导入android.R永远不会解决我的任何问题。 它只是增加了现有的问题,这些问题在开发的最初阶段曾经非常痛苦。

那么,有没有人知道eclipse背后的原因是否提出了错误导入的建议? 这只是一个bug吗? 我不认为这是一个错误,因为它至少在Android文档中提到之后就已经修复了。

如果它不是一个bug,那么android.R的真正目的是什么? 它到底指的是什么?

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

谢谢!

这不是一个错误。 有一些实例, android.R可以帮助解决问题。

android.R是一个R.java文件,就像你在自己的项目中一样。 项目中的your.packagename.Ryour.packagename.R )包含对你/res文件夹下的资源的引用,比如布局,drawables,XML文件,原始文件,字符串等。

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

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

如果你通过android工具重命名你的软件包名称而不是在你的代码中重命名基本软件包名称,Eclipse也将总是尝试在你的类中自动导入android.R,因为他会假设你的文件中有两个R.

尝试这个…

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

取消选中“整理import”。 希望能做到这一点。

完成此设置后,它适用于我。