私は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>
これが起こり得る2つの理由:
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)LinearLayout
を使用している場合は、ツールを定義する必要があります。
xmlns:tools="http://schemas.Android.com/tools"
ここでは表示されないという理由だけで、別の答えを追加します。 Pentium10が要求したのは100%というわけではありませんが、私はここでError parsing XML: unbound prefix
を検索しました。
ads:adSize
のようなAdMob広告にカスタムパラメータを使用していましたが、追加していませんでした。
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"
XMLは "
Android:
"名前空間が何であるかを知らないので、エラーメッセージは "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ファイルのルートノードに下記のdefineを追加する必要があります。
xmlns:Android="http://schemas.Android.com/apk/res/Android"
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"
これは私にとってトリックでした。
私にとっては、4行目でAndroidのスペルを間違えていましたが、ここで1行目に「unbound prefix」エラーが表示されました。
<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"
OK、ここにはたくさんの解決策がありますが、実際には問題の根本的な原因を説明していないので、ここで行きます。
Android:layout_width="match_parent"
のような属性が表示されている場合、Android
の部分が接頭辞であり、ここでの属性のフォーマットはPREFIX:NAME="VALUE"
です。 XMLでは、名前空間と接頭辞は、名前の競合を避けるための方法です。たとえば、a:a="val"
とb:a="val"
のように、名前は同じで接頭辞が異なる2つの異なる属性を持つことができます。
Android
やapp
などのプレフィックスを使用するには、xmlns
属性を使用して名前空間を定義する必要があります。
そのため、この問題がある場合は名前空間が定義されていないプレフィックスを見つけるだけでよく、tools:...
がある場合はツールの名前空間を追加し、app:...
属性がある場合はルート要素にxmlns:app="http://schemas.Android.com/apk/res-auto"
を追加する必要があります。
参考文献:
このエラーは通常、xmlns:mm
を正しく含めなかった場合に発生します。通常、コードの最初の行に発生します。
私にとってはそれでした..
xmlns:mm = "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" >
これ以外にも、このエラーが発生するシナリオもあります。
あなたまたはあなたのライブラリプロジェクトがカスタム属性int attr.xmlを定義するとき、そしてあなたは名前空間を定義せずにあなたのレイアウトファイルでこれらの属性を使用します。
通常、この名前空間定義をレイアウトファイルのヘッダーに使用します。
xmlns:Android="http://schemas.Android.com/apk/res/Android"
それから、ファイル内のすべての属性がで始まることを確認してください。
Android:ATTRIBUTE-NAME
属性のいくつかがAndroid以外のもので始まっていない場合は、識別する必要があります。ATTRIBUTE-NAME like
temp:ATTRIBUTE-NAME
この場合、あなたはこの "temp"を名前空間としても持っています。
xmlns:temp="http://schemas.Android.com/apk/res-auto"
私の場合、エラーは上記の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" />
ルートタグに適切なネームスペースを追加するだけです。 xmlns:Android = "http://schemas.Android.com/apk/res/Android" Android要素はこの名前空間で宣言されています。クラスまたはパッケージのインポートと同じです。
Androidのスペルが間違っているとよく起こります - andoridや似たものを入力しただけで、特に何時間もプログラミングした後は一目瞭然ではないので、1つずつ「Android」を検索して検索がスキップされるかどうか確認しますtag - もしそうなら、私はよく見て、タイプミスがどこにあったかを見ます。