Je reçois beaucoup d'erreurs de genre affichées dans le sujet. Ces erreurs semblent être occasionnelles et je ne peux pas les reproduire. De la pile, je peux apprendre qu'une telle erreur peut se produire pour mes différentes ressources de présentation. La ligne de XML varie également.
Quelqu'un peut-il expliquer pourquoi cette erreur se produit? Et ce que je peux faire pour résoudre ce problème?
Empiler
=============================================================
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)
Voici un résultat de XML, cependant une telle erreur se produit dans d’autres fichiers 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>
L’exception «gonfler» n’est pas le problème, mais bien un autre problème plus profond de votre mise en page, qui est ensuite encapsulé dans une exception InflateException . Si l'une de ces ressources présente une résolution en pixels élevée, cela nécessiterait beaucoup de mémoire, ce qui causerait une exception de gonflement.
Donc, fondamentalement, vérifiez que la résolution en pixels de vos images pouvant être dessinées ne représente que le minimum nécessaire pour votre mise en page.
ViewFlipper
charge toutes les images en mémoire pendant le gonflage de la mise en page. Comme mes images sont volumineuses, cela prend beaucoup de mémoire, j'ai remplacé ViewFlipper
par ImageSwitcher
qui peut changer les images avec une animation de type ViewFlipper
, mais elle ne charge qu'une image à la fois.
Cela peut aussi arriver si vous utilisez une VectorDrawable
en utilisant la bibliothèque de support et que vous avez oublié d'utiliser app:srcCompat
au lieu de Android:src
L’erreur exacte est: Ligne de fichier XML binaire #XX: erreur lors du gonflage de la classe ImageView
Je sais que la question a déjà reçu une réponse, mais je continue de poster en pensant que quelqu'un pourrait rencontrer ce genre de problème.
Dans mon cas, le problème est que je charge mon application sur un téléphone qui fait référence aux dispositions de res/layout/folder et aux valeurs pour @dimens à partir de res/values / dimens./dimens.
En fait, je mets à jour l'interface utilisateur du projet existant.
J'ai rencontré ce problème car j'utilise IDE Eclipse, où je ctrl + espace pour le conseil lors de l'écriture de XML pour le dossier de présentation. l'écriture.
Je sais aussi que les valeurs dans les deux fichiers doivent être identiques à mappées pour différents écrans.
J'espère que cela aidera quelqu'un à rencontrer ce genre de problème idiot.
La même erreur s'est produite lors de la création d'une vue personnalisée avec un seul constructeur. Essayez de définir tout le constructeur de vos vues personnalisées.
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();
}
Ma taille d'image est seulement 14Kb mais le problème est que le concepteur m'a donné 1011px x 1819px (résolution trop élevée, ce qui a causé l'inflateException)
J'ai eu cette erreur parce que j'ai choisi le thème comme thème Matériau. Mais comme j'essayais de lancer l'application sur 4.4.2, cette erreur s'est produite.
Solution: sélectionnez Theme_holo comme thème
Ce lien peut vous aider. Essayez de vérifier votre manifeste pour des problèmes. Si vous pouvez le faire se reproduire, envoyez votre trace de pile entière afin que nous puissions voir quelle est l'erreur.
EDIT: Je suis sûr que vous avez vérifié cela, mais que se passe-t-il à la ligne 12 du fichier XML que vous utilisez pour la présentation TourActivity?
J'ai rencontré le même bogue et trouvé que la raison principale était:
Utilisez le contexte d'application pour gonfler la vue.
Gonfler avec l'activité Le contexte a corrigé le bogue.
Pour moi, le message d'erreur était en réalité insuffisant dans le journal du chat, alors voici ce que j'ai fait pour déterminer la cause du problème:
(Dans le message d'erreur du journal du chat, il était indiqué que l'erreur s'était produite lors du gonflement d'une présentation spécifique dans mon HomeFragment.Java)
Evaluate expression
dessus: Run > Evaluate Expression
ou alt - F8
tools:targetApi="Lollipop"
(le bogue ne s'est produit que sur des appareils plus anciens).J'ai eu la même erreur et j'ai résolu de déplacer mes drawables du dossier drawable-mdpi vers le dossier drawable. Il m’a fallu un peu de temps pour comprendre, car dans Eclipse tout fonctionnait parfaitement, alors que dans Android Studio, j’avais ces erreurs d’affichage laides.
Note de modification: Si vous migrez d’Eclipse vers Android Studio et que votre projet provient d’Eclipse, il se peut que cela se produise. Veillez donc à ce que les choses diffèrent légèrement d’Eclipse dans Android Studio.
Je sais que c'est une question à réponse, mais je ne vois pas la cause à laquelle j'ai fait face.
C'est qu'Android Studio a placé mes dessins dans /drawable-V24Mon émulateur est l'API 23. Donc, finalement, il ne peut pas le trouver.
La solution consistait à déplacer tous les fichiers pouvant être dessinés vers/le dossier pouvant être dessiné (no -24).
Je sais que ce fil est vieux, mais je le réponds toujours pour que personne ne passe de nuits blanches.
Je refactais un ancien projet dont les fichiers de mise en page contenaient tous des attributs codés en dur tels que Android:maxLength = 500
. J'ai donc décidé de l'enregistrer dans mon fichier res/dimen
sous le nom <dimen name="max_length">500</dimen>
.
Fini la refactorisation de près de 30 fichiers de mise en page avec ma valeur de vente. Devine quoi? la prochaine fois que j'ai exécuté mon projet, il a commencé à lancer le même InflateException
.
En guise de solution, je devais refaire toutes mes modifications et conserver toutes ces valeurs comme auparavant.
TLDR;
étape 1: Tout va bien.
étape 2: Pour améliorer ma maintenance, j'ai remplacé Android:maxLength = 500
par <dimen name="max_length">500</dimen>
et Android:maxLength = @dimen/max_length
, c'est là que tout s'est mal passé (crash avec InflateException
).
étape 3: tout va mal
étape 4: Refait tout mon travail en remplaçant à nouveau Android:maxLength = @dimen/max_length
par Android:maxLength = 500
.
étape 5: Tout va bien.
Vous devez copier les fichiers image du dossier "drawable-24" dans le dossier "drawable".
Dans mon cas, cette erreur se produit lorsque j'utilise le bouton Action flottante et que je définit Android:backgroundTint="#000"
. Alors, ne définissez pas simplement backgroundTint
et le problème résolu . J'espère que cela vous aidera.
J'ai eu ce problème tout à l'heure et j'ai réussi à comprendre ce que c'était. Faire référence à une couleur dans mes valeurs qui posait problème Ainsi défini manuellement au lieu d'utiliser l'un des suggestions de la liste déroulante. Puis cela a fonctionné!
J'ai eu la même erreur lorsque j'ai lancé mon application sur l'API Niv 16 (26 c'était bien). C'est parce que j'ai utilisé ?attrr/colorAccent
dans ma forme drawable:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<corners Android:radius="8dp" />
<solid Android:color="@attr/colorAccent" />
</shape>
Remplacer cela par une couleur régulière a résolu mon problème.
j'ai eu le même problème et il a résolu en supprimant drawable-v24 avec (24) devant les images dans le dossier extractible et en les remplaçant par des éléments ordinaires.
J'ai trouvé la même erreur et il a fallu deux jours pour identifier la nature de l'erreur.
L'erreur était simplement parce que j'essayais d'en utiliser un: Android:background
Plutôt que: app:srcCompat
dans un fichier SVG.
Dans votre cas, je crois que c'est ça
<ImageView
Android:scaleType="fitXY"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:src="@drawable/tour_11" <-- the error is here !
/>
J'espère que ça aide.
Dans mon cas, je dois spécifier le nom de package complet du composant d'interface utilisateur de bibliothèque que j'utilise dans mon fichier de présentation.
Nous devons vérifier la version de l'API. J'avais l'habitude de donner une couleur de fond à ma LinearLayout
comme
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/as_royalblue"
Android:orientation="vertical"></LinearLayout>
bien sûr j'ai eu la même erreur, as_royalblue.xml
à l'intérieur du dossier drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<gradient
Android:angle="90"
Android:endColor="@color/royalblue_s"
Android:startColor="@color/royalblue_e" />
</shape>
et comment je l'ai corrigé , en fait, cela semble être un problème d'API. Nous devons donc vérifier le niveau de l'API s'il est supérieur à API 24 pour pouvoir utiliser la méthode qui nous convient. Mais si elle est inférieure à 24 ans, nous devons éviter toute utilisation. Les saillies donnent une couleur normale ou une couleur mélangée non dégradée.
fun checkAPI_N(): Boolean {
if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.N)
return true
else
return false
}
donnez id à vos linéarisations et définissez des arrière-plans si son ok
if(UtilKotlin.checkAPI_N()){
linlay_act_menu_container.setBackgroundResource(R.drawable.a_6)
linlay_act_menu_logo.setBackgroundResource(R.drawable.as_strain)
}else {//todo normal color background setting}
J'ai également fait face à un problème similaire. Bien que cela puisse concerner tout le monde, cela peut être dû à divers mauvais usages dans Code, tels que
Un facteur le plus ignoré peut être l'utilisation du contexte correct lors de l'inflation de vues. Vérifiez que vous n'utilisez pas ApplicationContext lorsqu'un contexte d'activité est requis. Bien que ApplicationContext puisse ne pas toujours se retrouver en erreur, mais en fonction de la hiérarchie de vos vues, il peut s'avérer crucial.
J'ai résolu mon problème avec un contexte BAD (en utilisant ApplicationContext au lieu de Activité en 4 jours! Essayez donc si cela résout. Codage heureux !!
Pour moi, c’est parce que j’ai essayé de mélanger des images vectorielles xml avec des png ordinaires dans le même fichier
seulement après avoir remplacé les graphiques vectoriels xml avec pngs, il a commencé à fonctionner
J'avais fait face au même problème, j'avais utilisé view tag in XML au lieu de View. Le remplacement de la classe View a résolu le problème.
J'espère que ça vous aidera aussi ..