Question

Je reçois beaucoup d'erreurs de type affiché dans la STAB. Ces erreurs semble être de temps en temps et je ne peux pas les reproduire. De pile, je peux apprendre que ceux-ci peuvent d'erreur se produit pour mes différentes ressources de mise en page. La ligne de XML est également variable.

Quelqu'un peut-il expliquer pourquoi cette erreur se produit? Et ce que je peux faire pour résoudre ce problème?

Stack

=============================================================

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 xmls

<?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>
Était-ce utile?

La solution

L'exception est décompressé pas vraiment le problème, mais vient vraiment d'un autre problème plus profond dans votre mise en page qui est ensuite enveloppé dans un InflateException. Un problème commun est une exception de mémoire lorsque vous essayez de gonfler un chargement imageview une ressource drawable. Si l'une de ces ressources a une haute résolution de pixels, il faudrait beaucoup de mémoire causant une exception décompressé.

vérifier essentiellement que la résolution de pixels dans vos images dessinables sont juste le minimum nécessaire pour votre mise en page.

Autres conseils

charges ViewFlipper toutes les images en mémoire lors de la mise en page de gonflage. Parce que mes images sont grandes, il prend beaucoup de mémoire, je l'ai remplacé ViewFlipper avec ImageSwitcher qui peut changer les images avec une animation comme ViewFlipper mais il charge qu'une seule image à l'époque.

Cela peut également se produire si vous utilisez un VectorDrawable en utilisant la bibliothèque de support et oublié d'utiliser app:srcCompat au lieu de android:src

erreur exacte est:   Binary ligne de fichier XML #XX: Classe d'erreur gonfler ImageView

Voir ce lien

Je sais que la question est déjà répondu mais je poste avec la pensée que quelqu'un mai rencontrer ce genre de problème.

Dans mon problème de cas est je charge ma demande au téléphone qui se réfèrent mises en page de res / layout / dossier et valeurs pour @dimens de res / valeurs / DIMENS ici, il est font_22 dont il essaie d'accès et Définissons dans res / valeurs-xlarge / dimens.

Je suis réellement mettre à jour l'interface utilisateur du projet existant.

je suis tombé sur ce problème parce que je suis en utilisant IDE Eclipse où je ctrl + espace pour soupçon lors de l'écriture XML pour la mise en page dossier, il affiche toutes les valeurs des valeurs ainsi que le dossier valeurs xlarge quel que soit le dossier pour lequel je écris .

Je sais aussi que les valeurs dans les deux fichiers doivent être identiques à cartographié pour les écrans différents.

Espérons que cela peut aider à quelqu'un INTRODUISE ce genre de problème stupide.

J'ai eu la même erreur lors de la création vue personnalisée avec un seul constructeur, essayez de définir tout constructeur pour 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();
    }

rencontré le même bug et a trouvé la raison de la racine est:

Utiliser le contexte d'application à la vue décompressé.

Gonflage avec contexte d'activité Correction du bug.

J'ai eu cette erreur parce que je choisi le thème comme thème Matière. Mais comme je l'ai essayé d'exécuter l'application sur 4.4.2 il a donné cette erreur.

Solution: Sélectionnez Theme_holo comme thème

Ma taille de l'image est seulement 14Kb, mais le problème est que le concepteur m'a donné 1011px x 1819px (résolution trop élevée entraînant par conséquent la InflateException)

Dans le cas où quelqu'un se des problèmes similaires, j'ai eu un tel problème tout en gonflant la vue:

View.inflate(getApplicationContext(), R.layout.my_layout, null)

fixée par le remplacement getApplicationContext() avec this

Ce lien peut vous aider . Essayez de vérifier dans votre manifeste pour des problèmes. Si vous pouvez obtenir que cela se reproduise, publier votre trace toute la pile afin que nous puissions voir ce que l'erreur est en réalité.

EDIT: Je suis sûr que vous avez vérifié cela, mais ce qui est sur la ligne 12 du fichier XML que vous utilisez pour la mise en page de TourActivity

?

Pour moi, le message d'erreur était effectivement insuffisante dans le chat journal, voici donc ce que je l'ai fait pour comprendre ce qui a causé le problème:

(Dans le message d'erreur de chat de journal, il dit l'erreur est survenue lors du gonflage d'une mise en page spécifique dans mon HomeFragment.java)

  1. Je mets un point d'arrêt juste avant la mise en page a été gonflé
  2. J'ai couru l'application en mode débogage jusqu'à ce qu'il atteint ce point d'arrêt spécifique
  3. J'ai choisi la ligne avec mon curseur et RAN Evaluate expression dessus:
    • Run > Evaluate Expression ou alt - F8
  4. Le résultat m'a montré plus d'informations sur la source du problème, qui dans mon cas, est un fichier étirables à l'aide tools:targetApi="lollipop" (le bug ne se produisait que sur les appareils plus anciens).

Je sais qu'il est une réponse à votre question, mais je ne vois pas la cause que je faisais face.

Il est que Android Studio est placé mes dessinables dans / drawable-V24 Mon émulateur est API 23. Alors, finalement, il ne peut pas le trouver.

La solution a consisté à déplacer tous dessinables à / dossier drawable (pas -24).

Vous devez copier les fichiers d'image à partir du dossier "drawable-24" dans le dossier "drawable".

J'ai eu la même erreur et je résolu déplacer mes dessinables à partir du dossier drawable-mdpi dans le dossier drawable. Il m'a fallu un certain temps pour se rendre compte parce que dans Eclipse tout a parfaitement fonctionné alors que dans Android Studio Je suis ces erreurs d'exécution laid.

Modifier la note: Si vous migrez d'éclipse à Android Studio votre projet vient d'éclipse, il peut arriver, alors soyez prudent que dans les choses Android studio un peu diffère de l'éclipse.

Dans mon cas, cette erreur se produit lorsque j'utilise le bouton d'action flottant et android:backgroundTint="#000" ensemble. Ensuite, il suffit de faire backgroundTint et problème non résolu ensemble. Espérons que c'est utile pour vous.

J'ai eu ce problème tout à l'heure et a réussi à comprendre ce qu'il était. Faisait référence à une couleur dans mes valeurs qui a été à l'origine des problèmes. Donc défini manuellement au lieu d'utiliser un dans le menu déroulant suggestions.Then cela a fonctionné!

J'avais même erreur quand je courais mon application sur l'API lvl 16 (26 est très bien). C'était parce que je ?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>

Le remplacement qui avec une couleur régulière fixe mon problème.

i eu le même problème et résolu en supprimant étirable-v24 avec (24) devant les images du dossier étirable et en les remplaçant par dessinables ordinaires.

Je sais que ce fil est vieux, mais toujours répondre pour que personne d'autre devrait passer des nuits blanches.

je refactoring un vieux projet, dont les fichiers mise en page contenaient tous des Hardcoded attributs tels que android:maxLength = 500. Je décide donc d'inscrire dans mon fichier res/dimen comme <dimen name="max_length">500</dimen>.

refactoring fini près de 30 fichiers de mise en page avec ma résolution valeur. Devine quoi? la prochaine fois que je courais mon projet, il a commencé à jeter le même InflateException.

En tant que solution, nécessaire pour refaire mes toutes les modifications et garder toutes ces valeurs-les mêmes que précédemment.

TLDR;

étape 1:. Tout bon fonctionnement

Étape 2: Pour améliorer mon entretien, j'ai remplacé android:maxLength = 500 avec <dimen name="max_length">500</dimen> et android:maxLength = @dimen/max_length, c'est là où tout a mal tourné (avec plantage InflateException)

.

Étape 3: Tout mauvais fonctionnement

Étape 4:. Refaire tout mon travail en remplaçant à nouveau android:maxLength = @dimen/max_length avec android:maxLength = 500.Everything a été réparé

étape 5:. Tout bon fonctionnement

J'ai trouvé la même erreur, et il a fallu deux jours pour identifier ce que l'erreur était.

L'erreur a été simplement parce que je tente d'utiliser un: android:background

Au lieu de: app:srcCompat

dans un fichier SVG.

Dans votre cas, je crois que c'est-il

<ImageView 
    android:scaleType="fitXY" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/tour_11"      <-- the error is here !
 />

Je recommande d'utiliser cette façon

<androidx.appcompat.widget.AppCompatImageView  <-- use **AppCompatImageView** not **ImageView**
        android:scaleType="fitXY" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:srcCompat="@drawable/tour_11"
     />

J'espère que cette aide.

J'ai aussi fait face à un problème similaire. Alors que pour toute personne cela peut être un problème de divers mauvais usages dans le code comme

  1. Mauvaise balise de mise en page en XML
  2. Chargement des ressources lourdes directement dans ImageView résultant OOM
  3. Problèmes liés à l'utilisation de styles.

Un facteur le plus ignoré peut être Utilisation du contexte correct en gonflant vues. S'il vous plaît vérifier que vous ne l'utilisez ApplicationContext où un contexte d'activité est nécessaire. Alors que, ApplicationContext ne peuvent pas se retrouver dans toujours l'erreur, mais en fonction de votre hiérarchie de la vue, il peut être crucial.

Je résolus mon problème avec un contexte BAD (en utilisant ApplicationContext au lieu de Activité dans une période de 4 jours! Donc, essayez si cela résout. Bonne programmation !!

Je l'avais fait face à la même question, je l'avais utilisé tag vue en XML au lieu de vue. Remplacement de la classe Voir fixe la question.

it helps pour vous aussi ..

Nous devons vérifier l'API version. Je l'habitude de donner de la couleur de fond à mon LinearLayout comme

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/as_royalblue"
        android:orientation="vertical"></LinearLayout>

pour que j'avais la même erreur, le dossier as_royalblue.xml dans 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 fixé , en fait, il semble problème api donc nous avons besoin de vérifier le niveau de api si elle est au-dessus API 24 donc nous sommes en mesure d'utiliser la façon dont nous aimons. Mais si elle est moins de 24 ans, nous devons éviter l'utilisation, juts donnent une couleur normale ou une couleur pas de couleur gradential mixte.

fun checkAPI_N(): Boolean {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N)
            return true
        else
            return false
    }

donner à vos id linearlayouts et arrière-plans ensemble 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}

Dans mon cas, je l'ai de préciser le nom du package complet du composant d'interface utilisateur bibliothèque que j'utilise dans mon fichier de mise en page.

Pour moi, ce qui est arrivé parce que j'ai essayé de mélanger des images graphiques vectoriels xml avec .png ordinaire dans le même fichier de mise en page,

seulement après avoir remplacé le vecteur xml graphiques avec PNGs il a commencé à travailler

  • Je résous simplement cette question suffit de supprimer vos images de drawable (v24) et juste coller dans drawable dossier ce qui fonctionne pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top