web-dev-qa-db-ja.com

クラスImageViewの膨張エラー

InflateException/ClassNotFoundExceptionエラーが断続的に発生しています。以前にSOで同様のエラーを見たことがありますが、それらはスペルミスが原因でした。

エラーが発生するコードは次のとおりです。

v = View.inflate(getContext(), R.layout.event_show_row_layout, null);

レイアウトxmlは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"

    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:orientation="vertical" >

    <RelativeLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        Android:paddingLeft="10dip"
        Android:paddingRight="10dip" >

        <TextView
            Android:id="@+id/fromTextView"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:textSize="12sp"
            Android:textStyle="italic" />

        <TextView
            Android:id="@+id/timeTextView"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:gravity="right"
            Android:textSize="12sp"
            Android:textStyle="italic" />
    </RelativeLayout>

    <RelativeLayout
        Android:id="@+id/layoutPostImage"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:padding="4dp" >

        <ImageView
            Android:id="@+id/postImageView"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_alignParentLeft="true"
            Android:layout_alignParentTop="true"
            Android:layout_margin="2dp"
            Android:adjustViewBounds="true"
            Android:background="@drawable/timeline_image_border"
            Android:contentDescription="@string/hello"
            Android:paddingBottom="6dp"
            Android:scaleType="fitXY"
            Android:src="@drawable/timeline_image_dummy" />
    </RelativeLayout>

    <RelativeLayout
        Android:id="@+id/wordsRelativeLayout"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >

        <TextView
            Android:id="@+id/wordsTextView"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:gravity="center_vertical|center_horizontal"
            Android:paddingLeft="50dp"
            Android:paddingRight="50dp"
            Android:text="@string/hello" />

        <ImageView
            Android:id="@+id/topLeftQuoteImageView"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentLeft="true"
            Android:layout_alignParentTop="true"
            Android:layout_marginLeft="10dp"
            Android:layout_marginTop="10dp"
            Android:adjustViewBounds="true"
            Android:contentDescription="@string/hello"
            Android:maxHeight="25dp"
            Android:maxWidth="25dp"
            Android:scaleType="fitXY"
            Android:src="@drawable/po_quotes_mobile1" />

        <ImageView
            Android:id="@+id/bottomRightQuoteImageView"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentBottom="true"
            Android:layout_alignParentRight="true"
            Android:layout_marginBottom="12dp"
            Android:layout_marginRight="12dp"
            Android:adjustViewBounds="true"
            Android:contentDescription="@string/hello"
            Android:maxHeight="25dp"
            Android:maxWidth="25dp"
            Android:scaleType="fitXY"
            Android:src="@drawable/po_quotes_mobile2" />
    </RelativeLayout>

    <RelativeLayout
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp" >

        <Button
            Android:id="@+id/commentButton"
            Android:layout_width="84dp"
            Android:layout_height="24dp"
            Android:layout_alignParentLeft="true"
            Android:layout_marginLeft="5dp"
            Android:background="@drawable/es_comment_btn" />

        <Button
            Android:id="@+id/buttonLike"
            Android:layout_width="84dp"
            Android:layout_height="24dp"
            Android:layout_marginLeft="5dp"
            Android:layout_toRightOf="@id/commentButton"
            Android:background="@drawable/es_like_btn" />

        <Button
            Android:id="@+id/buttonNumberLike"
            Android:layout_width="wrap_content"
            Android:layout_height="24dp"
            Android:layout_gravity="center"
            Android:layout_marginLeft="5dp"
            Android:layout_toRightOf="@id/buttonLike"
            Android:background="@drawable/like_counter"
            Android:textColor="@Android:color/white"
            Android:textSize="12sp" />

        <Button
            Android:id="@+id/buttonDelete"
            Android:layout_width="38dp"
            Android:layout_height="24dp"
            Android:layout_alignParentRight="true"
            Android:layout_marginRight="5dp"
            Android:background="@drawable/es_more_btn" />
    </RelativeLayout>

    <TextView
        Android:id="@+id/commentsTextView"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginBottom="10dp"
        Android:layout_marginLeft="10dp"
        Android:layout_marginRight="10dp"
        Android:layout_marginTop="10dp"
        Android:background="#FFF9F8F1"
        Android:text="@string/hello"
        Android:textColor="@Android:color/black"
        Android:textSize="12sp" />

    <TextView
        Android:id="@+id/spacerTextView"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="10dp"
        Android:layout_marginRight="10dp"
        Android:layout_marginTop="10dp" />

</LinearLayout>

エラーログは次のとおりです。

E/AndroidRuntime(15849): FATAL EXCEPTION: main
E/AndroidRuntime(15849): Android.view.InflateException: Binary XML file line #36: Error inflating class ImageView
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.createViewFromTag(LayoutInflater.Java:454)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.rInflate(LayoutInflater.Java:737)
E/AndroidRuntime(15849):    at  org.holoeverywhere.LayoutInflater.rInflate(LayoutInflater.Java:740)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.Java:542)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.Java:492)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.inflate(LayoutInflater.Java:487)
E/AndroidRuntime(15849):    at Android.view.View.inflate(View.Java:8807)
E/AndroidRuntime(15849):    at com.mypackage.adapters.PostAdapter.getPostView(PostAdapter.Java:283)
E/AndroidRuntime(15849):    at com.mypackage.adapters.PostAdapter.getView(PostAdapter.Java:268)
E/AndroidRuntime(15849):    at Android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.Java:220)
E/AndroidRuntime(15849):    at Android.widget.AbsListView.obtainView(AbsListView.Java:1430)
E/AndroidRuntime(15849):    at Android.widget.ListView.makeAndAddView(ListView.Java:1745)
E/AndroidRuntime(15849):    at Android.widget.ListView.fillDown(ListView.Java:670)
E/AndroidRuntime(15849):    at Android.widget.ListView.fillFromTop(ListView.Java:727)
E/AndroidRuntime(15849):    at Android.widget.ListView.layoutChildren(ListView.Java:1598)
E/AndroidRuntime(15849):    at Android.widget.AbsListView.onLayout(AbsListView.Java:1260)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.FrameLayout.onLayout(FrameLayout.Java:338)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1254)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1130)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1047)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.RelativeLayout.onLayout(RelativeLayout.Java:912)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.FrameLayout.onLayout(FrameLayout.Java:338)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at net.simonvt.menudrawer.LeftDrawer.onLayout(LeftDrawer.Java:64)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.FrameLayout.onLayout(FrameLayout.Java:338)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1254)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1130)
E/AndroidRuntime(15849):    at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1047)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.FrameLayout.onLayout(FrameLayout.Java:338)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.widget.FrameLayout.onLayout(FrameLayout.Java:338)
E/AndroidRuntime(15849):    at Android.view.View.layout(View.Java:7175)
E/AndroidRuntime(15849):    at Android.view.ViewRoot.performTraversals(ViewRoot.Java:1140)
E/AndroidRuntime(15849):    at Android.view.ViewRoot.handleMessage(ViewRoot.Java:1859)
E/AndroidRuntime(15849):    at Android.os.Handler.dispatchMessage(Handler.Java:99)
E/AndroidRuntime(15849):    at Android.os.Looper.loop(Looper.Java:130)
E/AndroidRuntime(15849):    at Android.app.ActivityThread.main(ActivityThread.Java:3683)
E/AndroidRuntime(15849):    at Java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15849):    at Java.lang.reflect.Method.invoke(Method.Java:507)
E/AndroidRuntime(15849):    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:839)
E/AndroidRuntime(15849):    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:597)
E/AndroidRuntime(15849):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(15849): Caused by: Java.lang.ClassNotFoundException: Could not find class: ImageView
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.onCreateView(LayoutInflater.Java:607)
E/AndroidRuntime(15849):    at org.holoeverywhere.LayoutInflater.createViewFromTag(LayoutInflater.Java:448)
E/AndroidRuntime(15849):    ... 48 more
18
dannyroa

同じ問題がありました。 「drawable-v24」フォルダ内の画像(アイコン)を使用したばかりだったため、私の問題が発生しました。それらを「描画可能」フォルダにコピーして解決しました

34

私は最近この同じ問題に出会い、app:srcCompat="@drawable/ic_black_image_24"を使用してそれを解決することができました

appcompat:srcCompatstatesのドキュメントは-

このImageViewのコンテンツとしてドロアブルを設定します。プラットフォームの古いバージョンで実行している場合、ベクトル描画可能の使用を許可します。

誰かが同じ問題に出くわした場合にこれが役立つことを願っています。

7
hsm59

変えようとする

v = View.inflate(getContext(), R.layout.event_show_row_layout, null);

v = View.inflate(getApplicationContext(), R.layout.event_show_row_layout, null);
5
Shani Goriwal

私にとっては、layout.xmlファイルの1つの中に、

<ImageView
    Android:id="@+id/row_1_col_0"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:background="@string/default_picture_location">
</ImageView>

また、strings.xmlの中に、

<string name="default_picture_location">"@mipmap/tile"</string>

そして、Android Studio:

<ImageView
    Android:id="@+id/row_1_col_0"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:background="@mipmap/tile">
</ImageView>

エラーがなく、アプリケーションがコンパイルされて実行されたため、すべてが機能すると思いました。ただし、「Android.view.InflateException:Binary XML file line#7:Error inflating class ImageView」という実行時エラーが発生しました。

Android:backgroundを変更したら

Android:background="@string/default_picture_location"

Android:background="@mipmap/tile"

すべてが働いた。

4
Gene

それは古い質問ですが、私はちょうど同じ問題に出会いました。私の場合は、selectorではなくcolorAndroid:tint属性を使用したことが原因です。

<ImageView
    ...
    Android:tint="@drawable/some_selector" />

これは問題なく動作しますが、SDK 21+では古いバージョンでクラッシュします...

AppCompatImageViewapp:tintに切り替えると問題が解決しました。

<Android.support.v7.widget.AppCompatImageView
    ...
    app:tint="@drawable/some_selector" />
4
Andrei Herford

私の場合、画像をフォルダにコピーしますdrawable-v24とコンパイラはそれを見つけられませんでした

Android studioからプロジェクトビューへのビューの変更

Project View

画像を切り取ってフォルダーdrawableに貼り付けます

3
Ali Khaki

インフレーション中のエラーは、この場合、ImageViewで使用されるドロアブルに起因する可能性があります。

Android:background="@drawable/timeline_image_border"
Android:src="@drawable/timeline_image_dummy"

それを取り除くには、別のドロウアブルを試して既存の画像をすべて置き換えます。

2
nzala

リソースはdrawable-zh-xxhdpiカタログドキュメントにありますが、drawable-xxhdpiリソースカタログにはありません。この間違いの発生です。

これは:

res
  drawable-xxhdpi
     aa.png
  drawable-zh-xxhdpi
     aa.png
2
郑松岚

「v-24」が動作しないため、画像をドロアブルに入れず、クラッシュしなくなりました。

1
Haniya

私の画像はdarawable-v24ディレクトリにあったため、私自身にこの問題がありました。そのため、古いAPIを使用したいときに、アプリがクラッシュしていました。リソースが正しいディレクトリにあるかどうかを確認することをお勧めします。

1
Hossein Karami

私の場合、同じエラーがありましたが、API <24のデバイス(エミュレーターまたは物理デバイス)を使用している場合、onlyでした。

これは、インポートしたSVG内で「勾配」を使用したことが原因でした。

エラーはスタックトレースには表示されませんが、インポートされたSVGファイルの.xmlに表示されます。

enter image description here

これにより、APIが24未満の場合に、このSVGをソースとして使用するビューを拡大すると、アプリがクラッシュします。

SVGのみを使用する場合は、このリソースの使用を24以上のAPIに制限し、以下のAPIの勾配を削除できます。

1
Louis

linearLayoutタグを閉じていません

そして、layout.xmlを膨らませるために次のコードを使用してください

LayoutInflater inflater = getLayoutInflater();
final View v = inflater.inflate(R.layout.your_layout_id, null);
1
nanithehaddock

私にとっては、drawabledrawable-v24の両方に画像を貼り付け、いくつかのコードAndroid:src="@drawable/battman"を追加したときに機能します

0
luqman ahmad

Xmlファイルと画像ファイルにこのような同じ名前を付けないでください enter image description here

0
littlebear333