Частые проблемы, возникающие в представлении android, Анализ ошибок XML: несвязанный префикс

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