我在android视图中经常出现问题,错误解析XML:第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>

当前回答

ViewPager指示器的unbound前缀错误:

在你的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"

这招对我很管用。

其他回答

此错误可能发生在使用未定义的前缀的情况下,例如:

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

我也有同样的问题。

确保前缀(android:[whatever])的拼写和书写正确。对于这一行,xmlns:android="http://schemas.android.com/apk/res/android" 确保您有完整的前缀xmlns:android,并且拼写正确。与任何其他前缀相同-确保它们拼写正确,并有android:[name]。这就解决了我的问题。

对于新手和像我这样不了解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"

正如您提到的,您需要指定正确的名称空间。您还会看到带有不正确名称空间的此错误。

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

to

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

错误消息引用以“android:”开头的所有内容,因为XML不知道“android:”命名空间是什么。 android定义了它。

在我的例子中,错误不是由上述任何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" />