Ответ 1
Измените <item id="@+id/my_location"
на <item android:id="@+id/my_location"
. Это во всех трех местах.
Кроме того, здесь: android:title:="Current location"
удалите двоеточие после title
.
Я создаю приложение для Android, которое использует файл menu.xml в папке res. Но я получаю вышеуказанную ошибку. Что это значит? Как я могу это исправить?
menu.xml:
<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item id="@+id/my_location"
android:icon="@drawable/my_location"
android:title:="Current location" />
<item id="@+id/mapview_satellite"
android:icon="@drawable/satelliteview"
android:title="Satellite View" />
<item id="@+id/mapview_normal"
android:icon="@drawable/normalview"
android:title="Normal view" />
</menu>
Измените <item id="@+id/my_location"
на <item android:id="@+id/my_location"
. Это во всех трех местах.
Кроме того, здесь: android:title:="Current location"
удалите двоеточие после title
.
Вам также необходимо убедиться, что следующие две строки находятся в списке ваших атрибутов:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
Если вы опустите те, Eclipse просто даст вам ошибку "отсутствующий андроид".
Верьте или нет, для тех, кто пытается работать с примерами в загружаемых книгах, вам может потребоваться убедиться, что у вас есть истинные кавычки, как их понимает компилятор. Я получал ту же ошибку, что и OP, и многие подобные ошибки синтаксического анализа, поскольку я пытался немного изменить XML файл. Я заметил тогда, что кавычки из вложенных фрагментов кода отличаются от тех, что были на моей клавиатуре (в фрагментах, которые они наклоняли вправо, и если я сам набрал их, они были прямо вверх и вниз).
Я знаю, что это звучит орехи, и я с трудом мог поверить в это, но когда я перепечатал свои цитаты, он работал нормально.
Добавление андроида:, прежде чем атрибут решит мою проблему.
создать XML файл в каталоге проекта res/menu/
Не в папке res
& Амп;
Не забывайте префикс атрибутов id.
Попробуйте это:
<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/my_location"
android:icon="@drawable/my_location"
android:title="Current location" />
<item android:id="@+id/mapview_satellite"
android:icon="@drawable/satelliteview"
android:title="Satellite View" />
<item android:id="@+id/mapview_normal"
android:icon="@drawable/normalview"
android:title="Normal view" />
</menu>
Иногда код XML может быть написан правильно, поэтому вам нужно просто сократить то, что у вас есть в настоящее время, а затем удалить его из номеров строк, а затем повторно вставить его, и ошибка должна быть исправлена. Если это не так, вы знаете, что ваш код ошибочен. По умолчанию xml распознает то, что вы поставили вначале, и его нужно удалить, чтобы начать заново. Поверьте мне, я просто потратил 3 дня на эту самую проблему и сделал именно то, что было сказано выше, удачи.
Вы забыли префикс атрибутов id
. Попробуйте сделать это следующим образом:
<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/my_location"
android:icon="@drawable/my_location"
android:title="Current location" />
<item android:id="@+id/mapview_satellite"
android:icon="@drawable/satelliteview"
android:title="Satellite View" />
<item android:id="@+id/mapview_normal"
android:icon="@drawable/normalview"
android:title="Normal view" />
</menu>
произошло две ошибки глупых ошибок
- id isn't it attribute is android:id
- First itme android:title:= you have written extra colon after title
здесь реализован код
<?xml version="1.0" encoding= "utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/my_location"
android:icon="@drawable/my_location"
android:title="Current location"/>
<item
android:id="@+id/mapview_satellite"
android:icon="@drawable/satelliteview"
android:title="Satellite View"/>
<item
android:id="@+id/mapview_normal"
android:icon="@drawable/normalview"
android:title="Normal view"/>
</menu>
Если у вас есть что-то вроде этого:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="person" type="com.abc.PersonEntity"/>
</data>
Переместите ваши данные внутри тега макета:
<layout xmlns:android="http://schemas.android.com/apk/res/android" >
<data>
<variable name="person" type="com.abc.PersonEntity"/>
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
...