【问题标题】:Strange Lint Warning - Unexpected text found in layout file: ""奇怪的 Lint 警告 - 在布局文件中发现意外的文本:“”
【发布时间】:2012-06-13 15:22:23
【问题描述】:

我在 button_selector.xml 中定义了以下选择器

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_pressed="true" 
           android:state_enabled="true"
           android:drawable="@drawable/button_settlement_background_pressed" />
       <item android:state_enabled="true"
           android:drawable="@drawable/button_settlement_background_normal" />
       <item android:state_enabled="false"
           android:drawable="@drawable/button_settlement_background_disabled" />
       </selector>

当我运行 lint 时,我收到以下警告:在布局文件中发现意外的文本:“”。它说它发生在“drawable”的第 4 行。所有引用的drawable都存在于/res/drawable中。

有人知道是什么原因造成的吗?我可以忽略警告,但如果可能,我宁愿修复它。

此外,当未使用的字符串和图标仅在 AndroidManifest.xml 中被引用时,我会收到警告。有没有办法解决这些问题而不是忽略它们?

【问题讨论】:

  • 当我在做的时候......我的项目没有 xhdpi 的密度文件夹,所以我将其添加为每个项目中要忽略的内容。但是,当引用的项目存在时,它仍然会报告错误。例如,我有一个名为 Library 的项目,它在 lint.xml 中设置了规则。我还有另一个名为 Service 的项目,它也有规则集。服务引用库作为 android 库。当我在 Library 上运行 Lint 时,它不会报告错误,这很好。当我在服务上运行时,它不会为自己报告错误,但会为库报告错误。 :-|

标签: android android-lint


【解决方案1】:

使用Project&gt;Clean

在我的情况下解决了这个问题。

【讨论】:

  • 这对我也有用。清理后,奇怪的字符可见,我将其删除。
【解决方案2】:

也许在空白处的某个地方有一个看不见的字符。我会尝试从头开始重新创建 xml(不使用复制和粘贴,如果发生这种情况,这只会复制问题)。我还会清理并重建项目。

至于未使用的资源警告,我认为没有办法控制它。图书馆项目的误报问题要严重得多。 Android lint 是一个相当新的工具,(在我看来)仍然有很多粗糙的边缘。

【讨论】:

  • 就是这样。我现在正在浏览 20 个不同的选择器并重新创建它们。耶! :)
  • @James - 听起来很有趣。 :)
  • 我打算在我昨天开始的项目中使用相同的解决方案,因为我昨天遇到了同样的问题。当我今天加载项目时(重新启动所有内容后),我实际上在文件中看到了昨天不存在的双引号字符!看起来 IDE 对文件实际包含的内容或其他内容感到困惑。很奇怪。
  • 当我继续使用 Eclipse 3.7.2 时,我已经看到至少 3 次双引号字符被插入到 XML 文件中而没有反映在编辑器中。最简单的解决方案是关闭 XML 编辑器并重新打开它,此时会显示多余的字符。
  • 您可以将 xml 内容复制到记事本中,然后再复制回 xml 文件中。这样,您将能够看到额外的引号。
【解决方案3】:

您也可以格式化xml文件(CTRL + SHIFT + F)。将显示多余的字符。

【讨论】:

    【解决方案4】:

    通常,当您插入类似“android:id=”之类的内容而不使用换行符并使用 Eclipse 的自动完成功能时,会发生这种情况,如下所示:

    <LinearLayout
                android:id= >
                           ^
    

    这里输入回车,代码应该是这样的:

    <LinearLayout
                    android:id="@+id/
    

    字符 '>' 已被删除,'"' 变得不可见。

    使用ctrl+shift+f 格式化文件以查找隐藏字符。

    【讨论】:

      【解决方案5】:

      我发现如果我关闭了我打开了隐藏字符的文件,然后重新打开了同一个文件。该字符不再隐藏(通常在 /> 之后,例如 />" )。

      【讨论】:

        【解决方案6】:

        分析 -> 检查代码

        它对我有用!

        【讨论】:

          【解决方案7】:

          在 XML 文件中,标签包含属性。考虑这一行:(最后一个“>”不应该在那里)......

          &lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt;

          确保第一行的标签不包含“>”。

          将上面的代码替换为: <selector xmlns:android="http://schemas.android.com/apk/res/android" ... </selector>

          现在其他元素在选择器标签下。我希望这会有所帮助。

          【讨论】:

          • 这是不正确的。如果“
          猜你喜欢
          • 1970-01-01
          • 2021-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-29
          • 2019-05-26
          • 2012-03-04
          • 2011-12-08
          相关资源
          最近更新 更多