14

我在 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 行。所有引用的可绘制对象都存在于 /res/drawable 中。

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

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

4

7 回答 7

20

使用Project>Clean.

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

于 2012-12-10T17:15:07.363 回答
16

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

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

于 2012-06-13T15:31:35.170 回答
13

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

于 2013-03-05T02:57:02.110 回答
2

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

<LinearLayout
            android:id= >
                       ^

这里输入回车,代码看起来是这样的:

<LinearLayout
                android:id="@+id/

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

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

于 2014-03-19T18:20:11.967 回答
1

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

于 2014-02-15T08:42:21.917 回答
0

分析 -> 检查代码

它对我有用!

于 2019-12-03T20:01:39.557 回答
-1

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">

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

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

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

于 2014-09-06T05:56:45.467 回答