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>
Теперь другие элементы находятся под тегом селектора. Надеюсь, это поможет.