web-dev-qa-db-ja.com

android.view.inflateexceptionバイナリxmlファイルの行#1のクラスを膨らませるエラーAndroid.widget.relativeLayout

私はAndroidが初めてです。
1つのテキストバーと2つのボタンで新しいレイアウトを作成しましたが、機能しませんでした。スタックトレースと相対レイアウトファイルを投稿しています。そこには、描画可能なサイズを小さくするという同じ質問がありました。しかし、それは私の場合には役に立たなかった、または私はそれを減らす方法について今はあまりしなかった。スタックトレースの一部を次に示します。

  D/AndroidRuntime(1192): Shutting down VM
W/dalvikvm(1192): threadid=1: thread exiting with uncaught exception (group=0xb60cc4f0)
E/AndroidRuntime(1192): FATAL EXCEPTION: main
E/AndroidRuntime(1192): Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hellomissworld/com.example.hellomissworld.MainActivity}: Android.view.InflateException: Binary XML file line #1: Error inflating class Android.widget.RelativeLayout
E/AndroidRuntime(1192):at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1647)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1663)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread.access$1500(ActivityThread.Java:117)
12-24 18:58:31.451: E/AndroidRuntime(1192):     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:931)

それがレイアウトのxmlファイルです:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:background="@layout/activity_main"
    Android:focusable="false"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        Android:id="@+id/editText1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentRight="true"
        Android:layout_marginTop="24dp"
        Android:ems="10"
        Android:inputType="text" >

        <requestFocus />
    </EditText>

    <TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignLeft="@+id/editText1"
        Android:layout_alignParentTop="true"
        Android:text="@string/typehere"
        Android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        Android:id="@+id/button2"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignRight="@+id/editText1"
        Android:layout_below="@+id/editText1"
        Android:text="@string/ok" />

    <Button
        Android:id="@+id/button1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/editText1"
        Android:layout_toLeftOf="@+id/button2"
        Android:text="@string/cancel" />

</RelativeLayout>
17
jazz b

変更する必要があります

Android:background="@layout/activity_main"

Android:background="@drawable/yourImageName"
14
Piyush

実際には大きすぎる大きな画像を使用しているときに、このエラーがポップアップすることもあります。これは、メモリエラーにつながり、アプリをクラッシュさせます。背景画像や大きなアセットを使用している場合は、それらが存在し、大きすぎないことを確認してから、雨の中で歌ってください!

10
ColossalChris

この行は、レイアウトの最初の行を示しています。

Android.view.InflateException: Binary XML file line #1: Error inflating class 

そして、最初の行には相対レイアウト宣言があります:

したがって、エラーはAndroid:background、およびこれはレイアウトの背景を設定する正しい方法ではありません。

Android:background="@layout/activity_main"

カラーまたは描画可能な画像である必要があります

Android:background="@color/backgroundColor"またはAndroid:background="#012345"

または

Android:background="@drawable/backgroundimg"
9
Hamad

これは間違っています Android:background="@layout/activity_main"

Android:background="@color/backgroundColor" 

または

Android:background="@drawable/backgroundimg"

私のケースでそれを修正したのは、color.xmlの場所を変更することでした

私の他のプロジェクトからコピーして新しいプロジェクトに貼り付けたとき、Android Studioはそれをv21フォルダーに配置したため、エミュレーター(v19)はリソースファイルcolor.xml

私はそれを修正するために次のことをしました:

  1. color.xmlを右クリックします。
  2. Refactor> Moveを選択します。
  3. 開いたダイアログで、接尾辞-v21を削除しました。

これで、私の「古い」エミュレーターはファイルを読み取ることができました。

私はそれが役立つことを願っています。

2
Barakuda

私は同じ問題を抱えていました-しかし、背景画像のないアクティビティで。

GUIエディター(Eclipseを使用している場合、Android Studio)がわからない)が理由なくバグのあるプロパティを追加することがあることがわかりました。

Android:background="@layout/activity_main"

エディタがそうする理由はわかりません-多分それはバグか、単に使用エラーです。

ただし、アクティビティに背景画像がない場合は、プロパティ全体を削除するだけです!

0
Martin Rosenau