Je reçois de nombreuses erreurs de type affichées dans le sousj. Ces erreurs semblent 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 mise en page. La ligne XML varie également.
Quelqu'un peut-il expliquer pourquoi cette erreur se produit? Et que puis-je 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, mais une telle erreur se produit dans d'autres 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>
android
xml
resources
android-inflate
Solvek
la source
la source
Réponses:
L'exception gonflée n'est pas réellement le problème, mais vient vraiment d'un autre problème plus profond dans votre mise en page qui est ensuite enveloppé dans une exception InflateException. Un problème courant est une exception de mémoire insuffisante lors de la tentative de gonflement d'une vue d'image en chargeant une ressource dessinable. Si l'une de ces ressources a une résolution de pixels élevée, cela prendrait beaucoup de mémoire, provoquant alors une exception de gonflement.
Vérifiez donc fondamentalement que la résolution en pixels de vos images dessinables est juste le minimum nécessaire pour votre mise en page.
la source
ViewFlipper
charge toutes les images en mémoire pendant le gonflage de la mise en page. Parce que mes images sont grandes, cela prend beaucoup de mémoire, j'ai remplacéViewFlipper
parImageSwitcher
qui peut changer les images avec une animation commeViewFlipper
mais il ne charge qu'une seule image à la fois.la source
Cela peut également se produire si vous utilisez une
VectorDrawable
bibliothèque de support et que vous avez oublié d'utiliser à laapp:srcCompat
place deandroid:src
L'erreur exacte est: Ligne de fichier XML binaire #XX: Erreur de gonflage de la classe ImageView
Voir ce lien
la source
J'ai eu la même erreur lors de la création d'une vue personnalisée avec un seul constructeur, essayez de définir tous les constructeurs pour vos vues personnalisées.
la source
Je sais que la question a déjà reçu une réponse, mais je poste toujours avec la pensée que quelqu'un peut rencontrer ce genre de problème.
Dans mon cas, le problème est que je charge mon application sur le téléphone qui fait référence aux mises en page de res / layout / folder et aux valeurs pour @dimens de res / values / dimens ici, c'est font_22 auquel il essaie d'accéder et il est défini dans res / values-xlarge / dimens.
Je mets à jour l'interface utilisateur du projet existant.
J'ai rencontré ce problème parce que j'utilise IDE Eclipse où je ctrl + espace pour l'indice tout en écrivant xml pour le dossier de mise en page, il affiche toutes les valeurs des valeurs ainsi que le dossier values-xlarge quel que soit le dossier pour lequel j'écris.
Je sais également que les valeurs dans les deux fichiers doivent être identiques pour être mappées pour différents écrans.
J'espère que cela peut aider quelqu'un à rencontrer ce genre de problème stupide.
la source
J'ai rencontré le même bug et j'ai trouvé que la raison principale est:
Utilisez le contexte d'application pour gonfler la vue.
Le gonflage avec le contexte d'activité a corrigé le bogue.
la source
La taille de ma photo n'est que de 14 Ko mais le problème est que le concepteur m'a donné 1011px x 1819px (résolution trop élevée, d'où InflateException)
la source
Au cas où quelqu'un aurait des problèmes similaires, j'ai eu un tel problème en gonflant la vue:
View.inflate(getApplicationContext(), R.layout.my_layout, null)
corrigé en remplaçant
getApplicationContext()
parthis
la source
J'ai eu cette erreur car j'ai sélectionné le thème comme thème matériel. Mais comme j'essayais d'exécuter l'application sur 4.4.2, cela a donné cette erreur.
Solution: sélectionnez Theme_holo comme thème
la source
4.2.2
. Mais où puis-je passer du thème Material à Theme_holo? Je ne vois pas le mot-clé Material dans monstyles.xml
ouv21/styles.xml
. Voir ma question: stackoverflow.com/questions/37883677/…Ce lien peut vous aider. Essayez de vérifier votre manifeste pour les problèmes. Si vous pouvez faire en sorte que cela se reproduise, publiez l'intégralité de votre trace de pile afin que nous puissions voir quelle est réellement l'erreur.
EDIT: Je suis sûr que vous avez vérifié cela, mais que contient la ligne 12 du fichier XML que vous utilisez pour la mise en page TourActivity?
la source
Pour moi, le message d'erreur était en fait insuffisant dans le chat du journal, alors voici ce que j'ai fait pour déterminer la cause du problème:
(Dans le message d'erreur du chat du journal, il est indiqué que l'erreur s'est produite lors du gonflage d'une mise en page spécifique dans mon HomeFragment.java)
Evaluate expression
dessus:Run > Evaluate Expression
oualt - F8
tools:targetApi="lollipop"
(le bogue ne s'est produit que sur les appareils plus anciens).la source
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'utiliser:
android:background
Plutôt que:
app:srcCompat
dans un fichier SVG.
Dans ton cas, je crois que c'est ça
Je recommande de l'utiliser de cette façon
ajoutez ceci à votre application build.gradle
et
J'espère que ça aide.
la source
Je sais que c'est une question avec réponse, mais je ne vois pas la cause à laquelle j'ai été confrontée.
C'est qu'Android Studio a placé mes drawables dans / drawable-V24 Mon émulateur est l'API 23. Donc, finalement, il ne peut pas le trouver.
La solution était de déplacer tous les drawables vers le dossier / drawable (pas de -24).
la source
Vous devez copier les fichiers image du dossier «drawable-24» vers le dossier «drawable».
la source
J'ai eu la même erreur et j'ai résolu le déplacement de mes drawables du dossier drawable-mdpi vers le dossier drawable. Il m'a fallu un certain temps pour le réaliser car dans Eclipse, tout fonctionnait parfaitement alors que dans Android Studio, j'ai eu ces horribles erreurs d'exécution.
Modifier la note: Si vous migrez d'Eclipse vers Android Studio et que votre projet provient d'Eclipse, cela peut arriver, alors faites attention que dans Android Studio, les choses diffèrent un peu de Eclipse.
la source
Dans mon cas, cette erreur se produit lorsque j'utilise le bouton d'action flottant et que je règle
android:backgroundTint="#000"
. Alors ne définissez pasbackgroundTint
et le problème est résolu. J'espère que cela vous aidera.la source
app:backgroundTint
au lieu deandroid:backgroundTint
.Pour moi, mon problème était que j'étais
Dans un arrière-plan LinearLayout, une fois que je l'ai supprimé, le test a réussi.
la source
J'ai eu ce problème tout à l'heure et j'ai réussi à comprendre ce que c'était. Faisait référence à une couleur dans mes valeurs qui posait des problèmes. Je l'ai donc défini manuellement au lieu d'en utiliser une parmi les suggestions de la liste déroulante, puis cela a fonctionné!
la source
J'ai eu la même erreur lorsque j'ai exécuté mon application sur l'API lvl 16 (26 était bien). C'est parce que j'ai utilisé
?attrr/colorAccent
dans ma forme dessiné:Le remplacer par une couleur régulière a résolu mon problème.
la source
J'ai eu le même problème et il a été résolu en supprimant drawable-v24 avec (24) devant les images dans le dossier drawable et en les remplaçant par des drawables ordinaires.
la source
Je sais que ce fil est vieux, mais y répond toujours pour que personne d'autre ne passe des nuits blanches.
J'étais en train de refactoriser 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 monres/dimen
dossier en tant que<dimen name="max_length">500</dimen>
.Fini la refactorisation de près de 30 fichiers de mise en page avec ma valeur de résolution. Devine quoi? la prochaine fois que j'ai lancé mon projet, il a commencé à lancer le même
InflateException
.En guise de solution, je devais refaire tous mes changements et conserver toutes ces valeurs comme avant.
TLDR;
étape 1: tout fonctionne bien.
étape 2: pour augmenter ma maintenance, j'ai remplacé
android:maxLength = 500
par<dimen name="max_length">500</dimen>
etandroid:maxLength = @dimen/max_length
, c'est là que tout s'est mal passé (crash avecInflateException
).étape 3: tout tourne mal
étape 4: refaire tout mon travail en remplaçant à nouveau
android:maxLength = @dimen/max_length
parandroid:maxLength = 500
Refaites .Tout a été corrigé.Étape 5: Tout fonctionne bien.
la source
Résolu le problème en déplaçant tous mes éléments dessinables de drawable-v24 à drawable
la source
J'ai également rencontré un problème similaire. Alors que pour tout le monde, cela peut être un problème de diverses mauvaises utilisations dans le code telles que
Un des facteurs les plus ignorés peut être l' utilisation d'un contexte correct tout en gonflant les vues. Veuillez vérifier que vous n'utilisez pas ApplicationContext lorsqu'un contexte d'activité est requis. Alors que, ApplicationContext ne finisse pas toujours par une erreur, mais en fonction de votre hiérarchie de vues, cela peut être crucial.
J'ai résolu mon problème avec un contexte MAUVAIS (en utilisant ApplicationContext au lieu d' Activité en 4 jours! Alors essayez si cela résout. Bon Codage !!
la source
J'avais rencontré le même problème, j'avais utilisé la balise de vue en XML au lieu de View. Le remplacement de la classe View a résolu le problème.
J'espère que cela vous aidera aussi.
la source
Nous devons vérifier la version de l'API. J'avais l'habitude de donner une couleur de fond à mes
LinearLayout
goûtsbien sûr, j'ai eu la même erreur,
as_royalblue.xml
dans ledrawable
dossieret comment je l'ai corrigé , en fait, il semble que l'API pose un problème, nous devons donc vérifier le niveau de l'API s'il est au-dessus de l'API 24 afin que nous puissions utiliser la façon dont nous aimons. Mais s'il est inférieur à 24, nous devons éviter l'utilisation, les juts donnent une couleur normale ou une couleur non mélangée avec un dégradé de couleurs.
donnez un identifiant à vos présentations linéaires et définissez des arrière-plans si ça va
la source
Dans mon cas, je dois spécifier le nom complet du package du composant d'interface utilisateur de la bibliothèque que j'utilise dans mon fichier de mise en page.
la source
Pour moi, cela s'est produit parce que j'ai essayé de mélanger des images graphiques vectorielles xml avec des png ordinaires dans le même fichier de mise en page,
seulement après avoir remplacé les graphiques vectoriels xml par des png, cela a commencé à fonctionner
la source
Je viens de résoudre ce problème, supprimez simplement vos images de drawable (v24) et collez-les simplement dans un dossier drawable, cela fonctionne pour moi.
la source
J'ai eu la même erreur dans
Crashlytics
un appareil étrange: Motorola One Vision Android 5.1 et 20 Go de RAM (gratuit), enraciné Cet appareil est livré à l'origine avec Android 9.0, 4 Go de RAMQuelqu'un essaie probablement de pirater l'application que je développe actuellement et a des problèmes avec les multi-APK. Donc, les drawables ne peuvent pas être trouvés et l'application livre le crash
la source