Strange Lint Warning - Неожиданный текст, найденный в файле макета: ""

У меня есть следующий селектор, определенный в 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. Есть ли способ исправить это, а не игнорировать их?

Ответ 1

Возможно, там есть невидимый персонаж где-то в белом пространстве. Я бы попробовал воссоздать xml с нуля (не используя copy-and-paste, который просто скопировал бы проблему, если это произойдет). Я бы также очистил и восстановил проект.

Что касается неиспользуемых предупреждений о ресурсах, я не думаю, что есть способ контролировать это. Проблема ложных срабатываний значительно хуже для библиотечных проектов. Android lint - довольно новый инструмент и, по-моему, все еще имеет много грубых краев.

Ответ 2

Использование Project>Clean.

Исправлена проблема в моем случае.

Ответ 3

Вы также можете форматировать XML файл (CTRL + SHIFT + F). Появятся дополнительные символы.

Ответ 4

как правило, это произойдет, если вы вставляете что-то вроде "android: id =" без новой строки и используя автозавершение eclipse, например:

<LinearLayout
            android:id= >
                       ^

здесь введите тип, код будет выглядеть следующим образом:

<LinearLayout
                android:id="@+id/

символ ">" был удален и "стал невидимым".

используйте ctrl+shift+f чтобы отформатировать файл, чтобы найти скрытые символы.

Ответ 5

Я обнаружил, что если бы я закрыл файл, у меня был скрытый символ, то снова открыл тот же файл. Персонаж больше не скрывался (и, как правило, был сразу после />, например,/> ").

Ответ 6

В XML файле теги содержат атрибуты. рассмотрите строку: (последний ">" не должен быть там)...

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

Убедитесь, что тег в первой строке не содержит ">".

Замените код выше: <selector xmlns:android="http://schemas.android.com/apk/res/android"... </selector>

Теперь другие элементы находятся под тегом селектора. Надеюсь, это поможет.