2012-03-02 7 views
6

の申し訳ありません。私のタイトルはStackOverFlowの他の多くの人と似ていますが、それらの解決策のどれもが私の問題を満たしていないためです。Androidエラー:

私はレイアウトの使用を設計していますRelative Layout。コードビューでのデザイン後、グラフィックビューに変更すると、Eclipseに通知されます。

layout_width属性を指定する必要があります。

layout_height属性を指定する必要があります。

。 java.lang.RuntimeException:私はこのプログラムを実行すると、LogCat

に起因

でエラーに気づくでしょうバイナリXMLファイルのライン#2:あなた はlayout_width属性を指定する必要があります。ここで

私のXMLファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView 
     android:id="@+id/contact_name" 
     android:text="Sam" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="20dp" 
     android:layout_marginTop="20dp" 
     android:textSize="20dp"/> 

    <TextView 
     android:id="@+id/contact_phone" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="10dp" 
     android:text="39256493" 
     android:layout_below="@+id/contact_name" 
     android:layout_alignLeft="@+id/contact_name" 
     android:layout_marginTop="5dp"/>   

</RelativeLayout> 
+0

こと - これはあなたが持っている唯一のレイアウトXMLであります?他のものをチェックして、それらのエラーに該当しないことを確認します。 – jlindenbaum

+0

私はこの同じエラーがあります。あなたのXMLレイアウトがうまく構成されていないと、このエラーが発生する可能性があります。私はレイアウトで無効なxmlタグを修正した後に働いた。 hth! –

答えて

13

あなたのxmlnsラインxmlns:android="http://schemas.android.com/apk/res/android"をお読みください。 これで問題が解決する可能性があります。

EDIT:Googleの言葉を引用

http://developer.android.com/guide/topics/manifest/manifest-element.htmlで:

のxmlns:アンドロイドはアンドロイドの名前空間を定義します。

この属性は、 は常に "http://schemas.android.com/apk/res/android"に設定する必要があります。

使用しているレイアウトファイルのようなXMLファイルを使用している場合、同じファイル内で使用できる属性はスキーマによって定義されます。

xmlnsは「XML名前空間」の略です。 XML内部にキーワード「android:」の名前空間を定義しています。そのため、はじめにandroid:layout_heightandroid:layout_widthなどのすべての属性を「android:」で宣言する必要があります。

名前空間は、正確なスキーマを含むURLを指し示す有効なスキーマを指している必要があります。 URLが有効なスキーマを指していない場合、XML属性は認識されません。これは問題でした。

私の説明を理解できれば幸いです。

XMLネームスペースとスキーマについて詳しく知りたい場合は、W3SchoolsとWikipedia:http://www.w3schools.com/xml/xml_namespaces.asphttp://en.wikipedia.org/wiki/XML_schemaに直接お答えください。

+3

ああありがとう:)それは私のために働く。しかし、どうして私に説明してもらえますか?私はそれが単なる「URL」だと思うので、それほど重要ではないと思う:( – hqt

+1

確かに私は自分の投稿を編集して説明した。 – jcxavier

+3

ああ、ありがとうございます:D私はXMLの新興者です。 "は、参照しているスキーマのエイリアスです。 "xmlns:android =" http://schemas.android.com/apk/res/android "を" xmlns:droid = "http://schemas.android.com/apk/res/android"に変更した場合は、すべての属性の先頭に「droid:layout_width」などを付けることができます。エイリアスが.axmlに固有のものである限り、すべてが良好です。あなたは "a:layout_width"という属性を定義することができるだけの "a"でエイリアスすることができます。多くのタイピングを保存し、 "android:"と入力するのに疲れない人 – hqt

0

プロジェクトをクリーンアップしようとしてください。それでも動作しない場合は、相対レイアウトの引数をmatch_parentで変更してみてください。

1

あなたは行を変更する必要があります。xmlns:android="http://schemas.android.com が整列する:私はこのエラーとそれを満たしているxmlns:android="http://schemas.android.com/apk/res/android

; sの痛みを伴います。しかし、私は理由を説明することはできません。

は、それがために働くホープあなた:)

+3

ああ。ありがとう:)それは私のために働く。しかし、なぜ私はそれについて説明することができます:)私はそれが単なるURLだと思うので、重要ではない:( – hqt

+1

URL "http://schemas.android.com/apk/res/android"は、スキーマファイルの場所ですスキーマファイルは、指定された名前空間の許容データ型と値を定義します。 – ComeIn

2

それは関係ないかもしれないが、名前空間のタグがthe usual oneとして、私の注目を集めては、次のとおりです。XMLは正しいよう

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

ああ。ありがとう:)私のために働く。なぜなら、それは単なるURLなので、それほど重要ではないと思います。( – hqt

+0

URLはxmlスキーマファイルの場所です。スキーマファイルは、指定されたデータセットのデータ定義を提供しますXMLファイルの許容可能な構造がどのようなものであるかを定義します(例えば、.axmlは何らかのレイアウト要素で始まらなければなりません...)。各要素に許容されるデータ型(例えば、id mustあなたの.axmlに "xmlns:android =" http://schemas.android.com/apk/res/android "という参照を追加することによって、あなたは次のxmlがシーマはそのURLに位置しています。 – ComeIn