Je reçois une erreur InflateException/ClassNotFoundException par intermittence. J'ai déjà vu des erreurs similaires dans SO, mais elles ont été causées par des fautes d'orthographe. J'ai correctement orthographié "ImageView", donc je ne sais pas ce qui cause l'erreur.
Le code où l'erreur se produit est:
v = View.inflate(getContext(), R.layout.event_show_row_layout, null);
Voici la mise en page 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>
Voici le journal des erreurs:
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
J'ai eu le même problème. Mon problème est dû au fait que je viens d'utiliser des images (icônes) dans le dossier "drawable-v24". Je l'ai résolu en les copiant dans un dossier "drawable".
Je suis tombé sur le même problème récemment et j'ai pu le résoudre en utilisant app:srcCompat="@drawable/ic_black_image_24"
La documentation de appcompat:srcCompat
indique que -
Il définit un dessin comme contenu de cette ImageView. Permet l'utilisation de vecteurs dessinables lors de l'exécution sur des versions antérieures de la plate-forme.
J'espère que cela aidera si quelqu'un tombe sur le même problème.
Pour moi, dans l'un de mes fichiers layout.xml, j'avais
<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>
et à l'intérieur de strings.xml, j'avais
<string name="default_picture_location">"@mipmap/tile"</string>
et donc il montrait cela dans 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>
Je pensais que tout fonctionnerait car il n'y avait pas d'erreur et l'application compilée et exécutée. Toutefois, une erreur d’exécution indiquant: "Android.view.InflateException: ligne de fichier XML binaire n ° 7: erreur lors du gonflage de la classe ImageView".
Une fois que j'ai changé Android: fond de
Android:background="@string/default_picture_location"
à
Android:background="@mipmap/tile"
tout a fonctionné.
essayer de changer
v = View.inflate(getContext(), R.layout.event_show_row_layout, null);
à
v = View.inflate(getApplicationContext(), R.layout.event_show_row_layout, null);
C'est une vieille question mais je viens de rencontrer le même problème. Dans mon cas, cela a été causé par l’utilisation de l’attribut Android:tint
avec un selector
plutôt qu’un color
:
<ImageView
...
Android:tint="@drawable/some_selector" />
Bien que cela fonctionne sans problème avec un SDK 21+, il se bloque dans les anciennes versions ...
Le passage à AppCompatImageView
et à app:tint
a résolu le problème:
<Android.support.v7.widget.AppCompatImageView
...
app:tint="@drawable/some_selector" />
L’erreur lors de l’inflation peut provenir de drawable utilisé dans ImageView, dans ce cas:
Android:background="@drawable/timeline_image_border"
Android:src="@drawable/timeline_image_dummy"
Pour vous en débarrasser, remplacez toutes les images existantes en essayant un dessin différent.
J'ai les ressources dans les documents de catalogue drawable-zh-xxhdpi
, mais pas dans le catalogue de ressources drawable-xxhdpi
, l'apparition de cette erreur.
Cela devrait être:
res
drawable-xxhdpi
aa.png
drawable-zh-xxhdpi
aa.png
J'ai moi-même eu ce problème parce que mon image était dans le répertoire darawable-v24. Ainsi, lorsque je voulais utiliser une ancienne API, l'application se bloquait. Je suggère donc de vérifier si votre ressource est dans le bon répertoire ou non.
Dans mon cas, j'avais la même erreur, mais only lors de l'utilisation d'un périphérique avec une API <24 (émulateur ou périphérique physique).
Cela était dû à l'utilisation de "dégradé" dans un fichier SVG importé.
L'erreur n'apparaît pas dans le stacktrace, mais dans le fichier .xml du fichier SVG importé:
Cela provoque le blocage de l'application lors du gonflage d'une vue ayant ce SVG comme source, pour les API <24.
Si vous souhaitez utiliser uniquement le format SVG, vous pouvez limiter l'utilisation de cette ressource aux API> = 24 et supprimer le dégradé des API ci-dessous.
vous n'avez pas fermé la balise LinearLayout
et s'il vous plaît utilisez le code suivant pour gonfler layout.xml
LayoutInflater inflater = getLayoutInflater();
final View v = inflater.inflate(R.layout.your_layout_id, null);
Mettre l’image en dessinable PAS comme "v-24" a fonctionné pour moi et j’ai arrêté d’obtenir le crash.
Pour moi, cela fonctionne lorsque je colle une image à la fois dans drawable
et drawable-v24
et que j'ai ajouté du code Android:src="@drawable/battman"