android.view.InflateException:バイナリXMLファイルの行#12:クラスの拡張中にエラーが発生しました<不明>

2010年12月23日に質問されました。  ·  閲覧回数 315.4k回  ·  ソース

Solvek picture
2010年12月23日

サブジェクトに表示される種類のエラーが多数表示されます。 これらのエラーは時折発生するようで、再現できません。 スタックから、このようなエラーがさまざまなレイアウトリソースで発生する可能性があることがわかります。 XMLの行もさまざまです。

このエラーが発生する理由を誰かが説明できますか? そして、この問題を解決するために私は何ができますか?

スタック

=============================================================

com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------

----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>

1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------

-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)

これはXMLの結果ですが、このようなエラーは他のxmlで発生します

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
        <ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
    </ViewFlipper>

    <LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
        <TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>

    </LinearLayout>

    <Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />

    <FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>               
    </FrameLayout>
</merge>

回答

vnportnoy picture
2014年04月22日
269

インフレート例外は実際には問題ではありませんが、実際にはレイアウトの別のより深い問題から発生し、それがInflateExceptionにラップされます。 一般的な問題は、ドローアブルリソースをロードするイメージビューを拡張しようとしたときのメモリ不足の例外です。 このリソースの1つが高ピクセル解像度の場合、大量のメモリが必要になり、膨張例外が発生します。

したがって、基本的に、ドローアブル画像のピクセル解像度がレイアウトに必要な最小限であることを確認してください。

lujop picture
2016年06月09日
25

これは、サポートライブラリを使用してVectorDrawableを使用し、 android:src代わりにapp:srcCompatを使用するのを忘れた場合にも発生する可能性があります。

正確なエラーは次のとおりです。バイナリXMLファイルの行#XX:クラスImageViewの拡張エラー

そのリンクを参照してください

Solvek picture
2011年03月01日
24

ViewFlipperは、レイアウトの拡張中にすべての画像をメモリにロードします。 私の画像は大きいので多くのメモリを必要とするので、 ViewFlipperImageSwitcherに置き換えました。これにより、画像をViewFlipperようなアニメーションに変更できますが、一度に1つの画像しか読み込まれません。

Wildan Muhlis picture
2017年02月21日
12

コンストラクターが1つだけのカスタムビューを作成するときに同じエラーが発生しました。カスタムビューのすべてのコンストラクターを定義してみてください。

   public CustomWebView(Context context) {
        super(context);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }
MobileEvangelist picture
2013年04月02日
11

質問はすでに回答済みですが、それでも誰かがこの種の問題に遭遇する可能性があると考えて投稿しています。

私の場合の問題は、res / layout /フォルダーからのレイアウトとres / values / dimensからの@dimensの値を参照する電話にアプリケーションをロードしていることです。ここではアクセスしようとしているfont_22であり、res / values-xlargeで定義されています。 / dimens。

私は実際に既存のプロジェクトのUIを更新しています。

この問題が発生したのは、IDE Eclipseを使用していて、レイアウトフォルダーのxmlを記述しているときに、ヒントとしてctrl + spaceを使用しているため、どのフォルダーを記述しているかに関係なく、values-xlargeフォルダーのすべての値が表示されます。

また、異なる画面にマップするには、両方のファイルの値が同じである必要があることも知っています。

これが誰かがこの種のばかげた問題に遭遇するのを助けるかもしれないことを願っています。

cox picture
2015年09月09日
9

同じバグに遭遇し、根本的な理由は次のとおりです。

アプリケーションコンテキストを使用してビューを拡張します。

アクティビティコンテキストで拡張すると、バグが修正されました。

Han Heong Ho picture
2015年05月11日
6

私の画像サイズはわずか14Kbですが、問題はデザイナーが私に1011px x 1819pxを与えたことです(解像度が高すぎるため、InflateExceptionが発生します)

Lakhwinder Singh Dhillon picture
2015年11月04日
6

マテリアルテーマとしてテーマを選択したため、このエラーが発生しました。 しかし、4.4.2でアプリを実行しようとしたときに、このエラーが発生しました。

解決策:テーマとしてTheme_holoを選択します

hedisam picture
2018年03月31日
6

誰かが同様の問題を抱えている場合、ビューを膨らませているときにそのような問題が発生しました:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

getApplicationContext()this置き換えることで修正

Julian Honma picture
2017年10月09日
5

私にとって、エラーメッセージは実際にはログ猫では不十分だったので、問題の原因を突き止めるために私がしたことは次のとおりです。

(log catエラーメッセージで、HomeFragment.javaの特定のレイアウトを膨らませているときにエラーが発生したと表示されていました)

  1. レイアウトが膨らむ直前にブレークポイントを設定しました
  2. 特定のブレークポイントに到達するまで、アプリケーションをデバッグモードで実行しました
  3. カーソルで行を選択し、その行でEvaluate expressionました。
    • Run > Evaluate Expressionまたはalt - F8
  4. その結果、問題の原因に関する詳細情報が表示されました。私の場合は、 tools:targetApi="lollipop"を使用した描画可能なファイル