частые проблемы, возникающие в представлении Android, Ошибка синтаксического анализа XML: несвязанный префикс - PullRequest
286 голосов
/ 08 февраля 2010

У меня частая проблема в представлении 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>

Ответы [ 15 ]

2 голосов
/ 14 февраля 2014

Эта ошибка обычно возникает, если вы не включили 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" >
1 голос
/ 30 июня 2016

Вам просто нужно добавить правильное пространство имен в корневой тег.xmlns: android = "http://schemas.android.com/apk/res/android" В этом пространстве имен объявлены элементы Android. То же, что и импорт класса или пакета.

1 голос
/ 10 декабря 2014

Помимо всего этого, существует также сценарий, когда эта ошибка происходит-

Когда вы или ваш библиотечный проект определяете пользовательский атрибут int attr.xml, и вы используете эти атрибуты в файле макета без определения пространства имен.

Обычно мы используем это определение пространства имен в заголовке нашего файла макета.

xmlns:android="http://schemas.android.com/apk/res/android"

Затем убедитесь, что все атрибуты в вашем файле начинаются с

android:ATTRIBUTE-NAME

Вам необходимо определить, если некоторые из ваших атрибутов не начинаются с чего-то другого, кроме android: ATTRIBUTE-NAME, например

temp:ATTRIBUTE-NAME

В этом случае у вас есть этот "temp" также в качестве пространства имен, как правило, путем включения -

xmlns:temp="http://schemas.android.com/apk/res-auto"
1 голос
/ 15 июля 2012

В моем случае ошибка не была вызвана какой-либо из указанных выше проблем с пространством имен 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" />
0 голосов
/ 12 декабря 2014

Обычно это происходит со мной, когда я неправильно пишу android - я просто набираю andorid или похожий, и это не очевидно с первого взгляда, особенно после многих часов программирования, поэтому я просто выполняю поиск «android» один за другим и вижу, поиск пропускает один тег - если это так, я внимательно изучаю и вижу, где была опечатка.

...