【问题标题】:android.R error if import is present如果存在导入,则出现 android.R 错误
【发布时间】:2012-09-08 00:16:46
【问题描述】:

我刚刚完成了我的一个应用程序的调试,因为我遇到了 R.layout 问题。

当然,我去了我的 .xml 文件并清理了一些错误,一切应该都很好,但事实并非如此。

由于某种原因,我仍然收到 R.layout 错误,说我的 .xml 文件无法解析为类型。

我删除 import android.R 语句后,一切都消失了,我的程序编译正确。

据我所知,这与人们在这种情况下所说的相反。通常他们会告诉您添加该语句以消除任何错误,但我的情况恰恰相反。有没有人知道为什么会发生这种情况,这样当这种情况不可避免地再次发生时,我就不必花太多时间在上面了?

谢谢大家!

【问题讨论】:

    标签: android mobile


    【解决方案1】:

    您正在导入一个不包含应用程序布局资源的 R。相反,您正在导入 Android 框架的 R,从而导致名称冲突。但是,在某些情况下您可能需要 android.R。在这些情况下,您不应导入 android.R,而应在需要时显式使用 android.R.[whatever]。

    您的应用程序拥有自己的 R,其中包含 您的 应用程序的大部分资源。

    android.R 包含各种Android 框架 资源。

    Android: What is R? 问题中有更多关于 R 类的信息。

    【讨论】:

    • TL;DR - 不要导入 OS R 包,而是让 Eclipse 导入您的 R 包(这将“放入”您命名空间的根目录)。
    【解决方案2】:

    有两个R:一个是你的项目,一个是android.R。你导入错了

    【讨论】:

      【解决方案3】:

      不应导入android.R。这是系统的 R.java 不是你的项目的。通过导入 android.R,您实际上隐藏了您自己的 R.java,这就是它无法解析其中的值的原因。因此,正如您(正确地)所做的那样,应该将 android.R 从您的导入列表中删除。 如果你需要在你的应用中使用它,你可以像这样使用它:

      android.R.layout.xxx
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 2018-08-28
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多