Частые проблемы, возникающие в представлении 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> 

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

Несколько причин, по которым это может случиться:

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) Если вы используете LinerLayout, вам может потребоваться определить инструменты

xmlns:tools="http://schemas.android.com/tools"

Я собираюсь добавить отдельный ответ только потому, что не вижу его здесь. Это не на 100% то, о чем просил Pentium10, но я оказался здесь, выполнив поиск Error parsing XML: unbound prefix

Оказывается, я использовал пользовательские параметры объявлений AdMob, например ads:adSize , но я не добавил

  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 

К макету. Как только я добавил, он отлично поработал.

У меня была такая же проблема.

Убедитесь, что префикс (android: [whatever]) правильно записан и написан правильно. В случае строки xmlns:android="http://schemas.android.com/apk/res/android" убедитесь, что у вас есть полный префикс xmlns:android и что он написан правильно. То же самое с любыми другими префиксами – убедитесь, что они написаны правильно и имеют android:[name] . Именно это и решило мою проблему.

Как вы говорите, вам нужно указать правильное пространство имен . Вы также видите эту ошибку с неправильным пространством имен.

 <?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 определяет его.

Эта ошибка может возникнуть в случае, если вы используете неопределенный префикс, например:

 <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, поскольку он еще не определен.

В вашем случае вы должны добавить ниже определение корневому узлу XML-файла.

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

Ошибка несвязанного префикса для индикатора ViewPager:

Наряду со следующими тегами заголовка в parentLayout:

 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" 

Это сделал трюк для меня.

Для меня я получил ошибку «несвязанный префикс» на первой строке здесь, хотя на четвертой строке я получил орфографический андроид.

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" anrdoid:fillViewport="true" > 

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

Я добавлю немного больше для новичков и для людей, таких как я, которые не понимают 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" 

Эта ошибка обычно возникает, если вы не включили xmlns:mm правильно, это происходит, как правило, в первой строке кода.

Для меня это было ..

XMLNS: мм = "http://millennialmedia.com/android/schema&quot;

Что я пропустил в первой строке кода

 <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" > 

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

Помимо всего этого существует также сценарий возникновения этой ошибки –

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

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

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

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

 android:ATTRIBUTE-NAME 

Вам нужно идентифицировать, если часть вашего attirbute не начинается с чего-то другого, кроме android: ATTRIBUTE-NAME нравится

 temp:ATTRIBUTE-NAME 

В этом случае у вас есть этот «temp» также как пространство имен, как правило,

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

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

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