У меня частая проблема в представлении 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>
Ответ 1
Несколько причин, по которым это может произойти:
1) Вы видите эту ошибку с неправильным пространством имен или опечаткой в атрибуте. Как и "xmlns", это должно быть xmlns:android
2) Сначала node должен содержать:
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) Если вы используете LinerLayout, вам может потребоваться определить инструменты
xmlns:tools="http://schemas.android.com/tools"
Ответ 2
Я собираюсь добавить отдельный ответ только потому, что не вижу его здесь. Это не 100%, о чем просил Pentium10, но я оказался здесь, ища Error parsing XML: unbound prefix
Оказывается, я использовал пользовательские параметры для объявлений AdMob, например ads:adSize
, но я не добавил
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
к макету. Как только я добавил его, он отлично работал.
Ответ 3
У меня была такая же проблема.
Убедитесь, что префикс (android: [whatever]) записан правильно и правильно написан. В случае линии xmlns:android="http://schemas.android.com/apk/res/android"
убедитесь, что у вас есть полный префикс xmlns:android
и что он написан правильно. То же самое с любыми другими префиксами - убедитесь, что они написаны правильно и имеют android:[name]
. Именно это и решило мою проблему.
Ответ 4
Как вы говорите, вам нужно указать правильное пространство имен. Вы также видите эту ошибку с неправильным пространством имен.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip">
не будет работать.
Изменить:
xmlns="http://schemas.android.com/apk/res/android"
к
xmlns:android="http://schemas.android.com/apk/res/android"
Сообщение об ошибке относится ко всему, что запускает "android:", поскольку XML не знает, что такое пространство имен "android:
".
xmlns:android
определяет его.
Ответ 5
Эта ошибка может возникнуть в случае, если вы используете неопределенный префикс, например:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabHost
XYZ:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TabHost>
Компилятор Android не знает, что такое XYZ, поскольку он еще не определен.
В вашем случае вы должны добавить ниже определение в root node файла xml.
xmlns:android="http://schemas.android.com/apk/res/android"
Ответ 6
ошибка несвязанного префикса для Индикатор ViewPager:
Наряду со следующими тегами заголовка в родительскомLayout:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
Также добавьте:
xmlns:app="http://schemas.android.com/apk/res-auto"
Это помогло мне.
Ответ 7
Для меня я получил ошибку "несвязанного префикса" на первой строке здесь, хотя на четвертой строке у меня был орфографический андроид.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
anrdoid:fillViewport="true"
>
Ответ 8
У меня была та же проблема, и я обнаружил, что решение заключалось в том, чтобы добавить android: tools в первый node. В моем случае это LineraLayout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
Ответ 9
Я добавлю немного больше для новичков и для людей, таких как я, которые не понимают XML.
Ответы выше довольно хорошие, но общий ответ заключается в том, что вам нужно пространство имен для любого пространства имен, используемого в файле config.xml.
Перевод: любое имя тега XML, которое имеет тег с пространством имен, где blah - это пространство имен, а fubar - это тег XML. Пространство имен позволяет использовать множество различных инструментов для интерпретации XML с их собственными именами тегов. Например, Intel XDK использует пространство имен intelxdk, android использует android. Таким образом, вам нужны следующие пространства имен или сборка подбрасывает кровь (т.е. Ошибка синтаксического анализа XML: несвязанный префикс), которая переводится на: вы использовали пространство имен, но не определяли его.
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:intelxdk="http://xdk.intel.com/ns/v1"
Ответ 10
Эта ошибка обычно возникает, если вы не включили xmlns:mm
правильно, она обычно встречается в первой строке кода.
для меня это было..
XMLNS: мм = "http://millennialmedia.com/android/schema"
что я пропустил в первой строке кода
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mm="http://millennialmedia.com/android/schema"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:background="@android:color/transparent" >
Ответ 11
В моем случае ошибка не вызвана каким-либо из перечисленных выше проблем пространства имен xml. Вместо этого это было расположение атрибута android:id
- он должен был быть первым элементом в объявлении конкретного элемента.
Итак, это:
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/bottomtext"
android:singleLine="true" />
... нужно прочесть вот так:
<TextView android:id="@+id/bottomtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true" />
Ответ 12
Помимо всего этого существует также сценарий возникновения этой ошибки -
Когда вы или ваш проект библиотеки определяете собственный атрибут int attr.xml, вы используете эти атрибуты в своем файле макета без определения пространства имен.
Обычно мы используем это определение пространства имен в заголовке нашего файла макета.
xmlns:android="http://schemas.android.com/apk/res/android"
Затем убедитесь, что все атрибуты в вашем файле shoud начинаются с
android:ATTRIBUTE-NAME
Вам нужно идентифицировать, если часть вашего attirbute не начинается с чего-то другого, кроме android: ATTRIBUTE-NAME, например
temp:ATTRIBUTE-NAME
В этом случае у вас есть этот "temp" также как пространство имен, как правило, включая -
xmlns:temp="http://schemas.android.com/apk/res-auto"
Ответ 13
Вам просто нужно добавить правильное пространство имен в свой корневой тег.
XMLNS: андроид = "http://schemas.android.com/apk/res/android"
Элементы Android объявляются в этом пространстве имен. То же самое, что импортировать класс или пакет.
Ответ 14
Обычно это происходит со мной, когда я пропускаю андроид - я просто набираю ororid или похожий, и это не очевидно на первый взгляд, особенно после многих часов программирования, поэтому я просто выполняю поиск по "андроиду" один за другим и вижу, поиск пропускает один тег - если это так, то у меня есть близкий взгляд, и я вижу, где была опечатка.