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

时间:2013-03-09 11:03:05

标签: android eclipse import

摘自documentation

  Eclipse有时候喜欢在这里添加一个导入android.R语句   使用资源的文件顶部,尤其是当您询问eclipse时   排序或以其他方式管理进口。这将导致你的制作   打破。注意这些错误的import语句并删除它们。

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

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

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

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

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

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:12)

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

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

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

试试这个......

窗口 - > Prefs - > Java - >编辑 - >保存操作

取消选中"组织进口。"希望能做到这一点。

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