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
同じ問題がありました。 「drawable-v24」フォルダ内の画像(アイコン)を使用したばかりだったため、私の問題が発生しました。それらを「描画可能」フォルダにコピーして解決しました
私は最近この同じ問題に出会い、app:srcCompat="@drawable/ic_black_image_24"
を使用してそれを解決することができました
appcompat:srcCompat
statesのドキュメントは-
このImageViewのコンテンツとしてドロアブルを設定します。プラットフォームの古いバージョンで実行している場合、ベクトル描画可能の使用を許可します。
誰かが同じ問題に出くわした場合にこれが役立つことを願っています。
変えようとする
v = View.inflate(getContext(), R.layout.event_show_row_layout, null);
に
v = View.inflate(getApplicationContext(), R.layout.event_show_row_layout, null);
私にとっては、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"
すべてが働いた。
それは古い質問ですが、私はちょうど同じ問題に出会いました。私の場合は、selector
ではなくcolor
でAndroid:tint
属性を使用したことが原因です。
<ImageView
...
Android:tint="@drawable/some_selector" />
これは問題なく動作しますが、SDK 21+では古いバージョンでクラッシュします...
AppCompatImageView
とapp:tint
に切り替えると問題が解決しました。
<Android.support.v7.widget.AppCompatImageView
...
app:tint="@drawable/some_selector" />
インフレーション中のエラーは、この場合、ImageViewで使用されるドロアブルに起因する可能性があります。
Android:background="@drawable/timeline_image_border"
Android:src="@drawable/timeline_image_dummy"
それを取り除くには、別のドロウアブルを試して既存の画像をすべて置き換えます。
リソースはdrawable-zh-xxhdpi
カタログドキュメントにありますが、drawable-xxhdpi
リソースカタログにはありません。この間違いの発生です。
これは:
res
drawable-xxhdpi
aa.png
drawable-zh-xxhdpi
aa.png
「v-24」が動作しないため、画像をドロアブルに入れず、クラッシュしなくなりました。
私の画像はdarawable-v24ディレクトリにあったため、私自身にこの問題がありました。そのため、古いAPIを使用したいときに、アプリがクラッシュしていました。リソースが正しいディレクトリにあるかどうかを確認することをお勧めします。
linearLayoutタグを閉じていません
そして、layout.xmlを膨らませるために次のコードを使用してください
LayoutInflater inflater = getLayoutInflater();
final View v = inflater.inflate(R.layout.your_layout_id, null);
私にとっては、drawable
とdrawable-v24
の両方に画像を貼り付け、いくつかのコードAndroid:src="@drawable/battman"
を追加したときに機能します
Xmlファイルと画像ファイルにこのような同じ名前を付けないでください (