У меня частая проблема в представлении Android Error parsing XML: unbound prefix on Line 2
.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:id="@+id/myScrollLayout"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent"
android:text="Family" android:id="@+id/Family"
android:textSize="16px" android:padding="5px"
android:textStyle="bold" android:gravity="center_horizontal">
</TextView>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="vertical" android:scrollbars="vertical">
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout"
android:layout_width="fill_parent" android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
</LinearLayout>
xml
android
eclipse
android-linearlayout
Pentium10
источник
источник
Ответы:
Пара причин, по которым это может произойти:
1) Вы видите эту ошибку с неправильным пространством имен или опечаткой в атрибуте. Как 'xmlns' не так, это должно быть
xmlns:android
2) Первый узел должен содержать:
xmlns:android="http://schemas.android.com/apk/res/android"
3) Если вы интегрируете AdMob, проверьте пользовательские параметры, такие как
ads:adSize
, вам нужноxmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
4) Если вы используете
LinearLayout
, возможно, вам придется определить инструменты:xmlns:tools="http://schemas.android.com/tools"
источник
Я собираюсь добавить отдельный ответ только потому, что я не вижу его здесь. Это не на 100% то, что просил Pentium10, но я попал сюда в поисках
Error parsing XML: unbound prefix
Оказывается, я использовал пользовательские параметры для рекламы AdMob, например
ads:adSize
, но я не добавилк макету. Как только я добавил это, это работало отлично.
источник
У меня была такая же проблема.
Убедитесь, что префикс (android: [что угодно]) написан правильно и написан правильно. В случае строки
xmlns:android="http://schemas.android.com/apk/res/android"
убедитесь, что у вас есть полный префиксxmlns:android
и что он написан правильно. То же самое с любыми другими префиксами - убедитесь, что они написаны правильно и имеютandroid:[name]
. Это то, что решило мою проблему.источник
Как вы упоминаете, вам нужно указать правильное пространство имен . Вы также видите эту ошибку с неправильным пространством имен.
не будет работать.
источник
Эта ошибка может возникнуть в случае, если вы используете неопределенный префикс, такой как:
Компилятор Android не знает, что такое XYZ, поскольку он еще не определен.
В вашем случае вы должны добавить ниже определение к корневому узлу файла XML.
источник
Наряду со следующими тегами заголовка в вашем parentLayout:
Также добавьте:
Это помогло мне.
источник
Для меня я получил ошибку «unbound prefix» в первой строке, хотя у меня был орфографический ошибочный android в четвертой строке.
источник
У меня была та же проблема, и я обнаружил, что решение было добавить инструменты android: на первый узел. В моем случае это LineraLayout:
источник
Я добавлю немного больше для новичков и для людей, как я, которые не понимают XML.
Ответы выше довольно хорошие, но общий ответ таков: вам нужно пространство имен для любого пространства имен, используемого в файле config.xml.
Перевод: любое имя XML-тега, которое имеет тег с пространством имен, где blah - это пространство имен, а fubar - это тег XML. Пространство имен позволяет использовать множество различных инструментов для интерпретации XML с собственными именами тегов. Например, Intel XDK использует пространство имен intelxdk, а android использует android. Таким образом, вам нужны следующие пространства имен, или сборка выдает кровь (т. Е. Ошибка синтаксического анализа XML: несвязанный префикс), которая переводится в: Вы использовали пространство имен, но не определили его.
источник
Хорошо, здесь есть много решений, но на самом деле они не объясняют причину проблемы, так что мы здесь:
когда вы видите, что атрибут, такой
android:layout_width="match_parent"
какandroid
часть, является префиксом, формат для атрибута здесьPREFIX:NAME="VALUE"
. в XML пространства имен и префиксы - это способы избежать конфликтов имен, например, у нас может быть два разных атрибута с одинаковыми именами, но с разными префиксами, такими как:a:a="val"
иb:a="val"
.чтобы использовать префиксы, такие как
android
илиapp
любой другой, вы должны определить пространство имен, используяxmlns
атрибут.так что если у вас есть эта проблема, просто найдите префиксы, которые не имеют определенного пространства имен, если у вас есть,
tools:...
вы должны добавить пространство имен инструментов, как предложили некоторые ответы, если у вас естьapp:...
атрибут, вы должны добавитьxmlns:app="http://schemas.android.com/apk/res-auto"
к корневому элементуДальнейшее чтение:
Пространство имен XML простое объяснение
Пространства имен XML в W3
источник
Эта ошибка обычно возникает, если вы не включили
xmlns:mm
должным образом, обычно это происходит в первой строке кода.для меня это было ..
XMLNS: мм = "http://millennialmedia.com/android/schema"
что я пропустил в первой строке кода
источник
В моем случае ошибка не была вызвана какой-либо из указанных выше проблем с пространством имен xml. Вместо этого это было местоположение
android:id
атрибута - он должен был быть первым элементом в объявлении конкретного элемента.Итак, это:
... нужно читать так:
источник
Помимо всего этого, существует также сценарий, где эта ошибка происходит
Когда вы или ваш библиотечный проект определяете пользовательский атрибут int attr.xml, и вы используете эти атрибуты в своем файле макета без определения пространства имен.
Обычно мы используем это определение пространства имен в заголовке нашего файла макета.
Затем убедитесь, что все атрибуты в вашем файле начинаются с
Вы должны идентифицировать, если некоторые из ваших attirbute не начинаются с чего-то другого, кроме android: ATTRIBUTE-NAME вроде
В этом случае у вас есть этот «темп» также в качестве пространства имен, как правило, путем включения
источник
Вам просто нужно добавить правильное пространство имен в корневой тег. xmlns: android = "http://schemas.android.com/apk/res/android" Элементы Android объявляются в этом пространстве имен. То же, что импорт класса или пакета.
источник
Это обычно происходит со мной, когда я неправильно пишу android - я просто набираю andorid или тому подобное, и это не очевидно с первого взгляда, особенно после многих часов программирования, поэтому я просто выполняю поиск «android» один за другим и вижу, пропускает ли поиск один тег - если это произойдет, я внимательно посмотрю, и я вижу, где была опечатка.
источник
Я получил эту ошибку в Xamarin, когда я использовал
в файле макета без установки пакета nuget для android.support.v7.widget.CardView
Установка соответствующего пакета nuget устранила проблему. Надеюсь, это поможет, я не видел этот ответ нигде в списке
источник