【问题标题】:import android.R in Eclipse : Why?在 Eclipse 中导入 android.R:为什么?
【发布时间】:2013-03-09 11:03:05
【问题描述】:

摘自documentation

Eclipse 有时喜欢在 使用资源的文件的顶部,尤其是当您询问 eclipse 时 分类或以其他方式管理进口。这将导致您的品牌 休息。注意这些错误的导入语句并删除它们。

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

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

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

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: android eclipse import


    【解决方案1】:

    这不是错误。在某些情况下,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 用于提及默认的 android 资源。但是话又说回来,如果我可能会问,为什么当我的 R.java 已经存在并且我正在使用 Cntrl+Shift+o 来组织我的导入时 eclipse 添加它?
    • 也许建议是按字母顺序排列的,谁知道呢。可能这就是组织者的工作方式。
    • @swayam Eclipse 应该仅在您的 R.java 出现错误时添加它。如果是添加它,它可能是一个错误。
    • 还有一点要记住的是,只有应用程序包会生成包含所有项目资源的 R.java 文件。所以如果你想从其他包中引用这些资源,你必须导入 yourapppackage.R.java。
    • 我发现当导入android.R时,通常意味着我的清单文件或资源文件有问题,因此我的R文件没有正确生成,如上面的答案州。
    【解决方案2】:

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

    【讨论】:

    • 我的项目仅为特定包(我创建的第一个包)生成 R.java。在所有其他包中,我必须导入该 R 类来引用我的布局资源。似乎第一个包的行为类似于母亲包,而其他包则是子包。知道这是在哪里指定的,以便我可以更改它吗?
    • 才发现是由manifest文件中manifest标签的package属性决定的。
    【解决方案3】:

    试试这个...

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 2013-09-06
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      相关资源
      最近更新 更多