奇怪的棉绒警告 - 布局文件中发现意外的文字:“”

时间:2012-06-13 15:22:23

标签: android android-lint

我在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时,我收到以下警告:在布局文件中找到意外的文本:“”。它说它发生在第4行的“可绘制”中。所有引用的drawable都存在于/ res / drawable中。

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

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

7 个答案:

答案 0 :(得分:20)

使用Project>Clean

修正了我的问题。

答案 1 :(得分:14)

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

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

答案 2 :(得分:13)

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

答案 3 :(得分:2)

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

<LinearLayout
            android:id= >
                       ^

这里输入enter,代码看起来像这样:

<LinearLayout
                android:id="@+id/

字符'&gt;'已被删除,“”变得无形。

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

答案 4 :(得分:1)

我发现如果我关闭了文件,我将隐藏的字符打开,然后重新打开相同的文件。角色不再被隐藏(通常只是在/&gt;之后,例如/&gt;“)。

答案 5 :(得分:0)

分析->检查代码

对我有用!

答案 6 :(得分:-1)

在XML文件中,标签包含属性。考虑一下:(最后“&gt;”不应该在那里)......

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

确保第一行的标记不包含“&gt;”。

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

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