309

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

16 に答える 16

569

これが発生する理由はいくつかあります。

1) このエラーは、名前空間が正しくないか、属性のタイプミスで表示されます。「xmlns」が間違っているように、そうあるべきですxmlns:android

2) 最初のノードには以下が含まれている必要があります。 xmlns:android="http://schemas.android.com/apk/res/android"

ads:adSize3) AdMob を統合している場合は、次のようなカスタム パラメータを確認してください。

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

4) を使用している場合はLinearLayout、ツールを定義する必要がある場合があります。

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

于 2010-02-08T12:03:46.730 に答える
101

ここに表示されないため、別の回答を追加します。Pentium10 が求めていたものは 100% ではありませんが、検索してここにたどり着きましたError parsing XML: unbound prefix

のような AdMob 広告のカスタム パラメータを使用していたことがわかりましたads:adSizeが、追加していませんでした

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

レイアウトに。追加したら、うまくいきました。

于 2012-12-16T08:18:03.950 に答える
64

私はこれと同じ問題を抱えていました。

接頭辞 (android:[whatever]) のスペルと書き方が正しいことを確認してください。行の場合xmlns:android="http://schemas.android.com/apk/res/android" 、完全なプレフィックスがxmlns:androidあり、スペルが正しいことを確認してください。他の接頭辞と同じ - スペルが正しく、android:[name]. これが私の問題を解決したものです。

于 2010-09-20T06:54:49.147 に答える
33

おっしゃるとおり、正しい名前空間を指定する必要があります。このエラーは、名前空間が正しくない場合にも表示されます。

<?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それを定義します。

于 2010-02-08T12:46:09.740 に答える
23

このエラーは、次のような未定義のプレフィックスを使用した場合に発生する可能性があります。

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

于 2011-12-08T07:42:52.510 に答える
11

ViewPager Indicatorのバインドされていないプレフィックス エラー:

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"

これは私にとってはうまくいきました。

于 2014-02-10T12:28:33.230 に答える
9

私にとっては、最初の行で「バインドされていないプレフィックス」エラーが発生しましたが、4 行目で android のスペルを間違えていました。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
anrdoid:fillViewport="true"
>
于 2012-08-14T20:02:26.573 に答える
7

私は同じ問題を抱えていましたが、解決策は 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">
于 2012-09-27T14:11:50.573 に答える
3

初心者や、私のように XML を理解していない人のために、もう少し説明を追加します。

上記の回答はかなり良いですが、一般的な回答は、config.xml ファイルで使用される名前空間には名前空間が必要だということです。

翻訳: XML タグ名は、blah が名前空間で fubar が XML タグである名前空間を持つタグです。名前空間を使用すると、さまざまなツールを使用して、独自のタグ名を持つ XML を解釈できます。たとえば、インテル XDK は名前空間 intelxdk を使用し、android は android を使用します。したがって、次の名前空間が必要です。そうしないと、ビルドが血を吐きます (つまり、XML の解析中にエラーが発生しました: バインドされていないプレフィックス)。これは次のように変換されます。

  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:intelxdk="http://xdk.intel.com/ns/v1"
于 2014-12-24T06:41:19.980 に答える
3

OK、ここには多くの解決策がありますが、実際には問題の根本原因を説明していないので、ここに行きます:

部分がプレフィックスのandroid:layout_width="match_parent"ような属性が表示される場合、ここでの属性の形式は です。XML では、名前空間とプレフィックスは名前の競合を回避する方法です。androidPREFIX:NAME="VALUE"a:a="val"b:a="val"

androidまたはappその他のような接頭辞を使用するには、xmlns属性を使用して名前空間を定義する必要があります。

したがって、この問題がある場合は、名前空間が定義されていないプレフィックスを見つけてください。ある場合はtools:...、いくつかの回答が示唆するようにツールの名前空間を追加する必要がありapp:...ます。属性がある場合はxmlns:app="http://schemas.android.com/apk/res-auto"、ルート要素に追加する必要があります。

参考文献:

XML 名前空間の簡単な説明

W3 の XML 名前空間

于 2018-09-19T21:25:46.550 に答える
1

このすべてに加えて、このエラーが発生するシナリオもあります-

あなたまたはあなたのライブラリ プロジェクトがカスタム属性 int attr.xml を定義し、名前空間を定義せずにレイアウト ファイルでこれらの属性を使用する場合。

通常、レイアウト ファイルのヘッダーでこの名前空間定義を使用します。

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

次に、ファイル内のすべての属性がで始まることを確認してください

android:ATTRIBUTE-NAME

属性の一部が android:ATTRIBUTE-NAME のようなもの以外で始まっていないかどうかを確認する必要があります

temp:ATTRIBUTE-NAME

この場合、この「一時」も名前空間として持ちます。通常、次を含めることにより、

xmlns:temp="http://schemas.android.com/apk/res-auto"
于 2014-12-10T05:54:59.837 に答える
1

私の場合、上記の 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" />
于 2012-07-15T03:23:01.753 に答える
1

ルートタグに適切な名前空間を追加するだけです。xmlns:android="http://schemas.android.com/apk/res/android" Android 要素は、この名前空間で宣言されます。クラスまたはパッケージをインポートするのと同じです。

于 2016-06-30T07:00:40.850 に答える
0

これは通常、android のスペルを間違えたときに発生します。andorid などと入力するだけで、特に何時間ものプログラミングを行った後では、一見しただけではわかりません。そのため、「android」を 1 つずつ検索し、検索が 1 つスキップされるかどうかを確認します。タグ - もしそうなら、私はよく見て、どこにタイプミスがあるかを見つけます。

于 2014-12-12T06:45:53.737 に答える