Erreur de gonflage de classe CollapsingToolbarLayout
Mon CollapsingToolbarLayout se bloque en raison d'Erreur de gonflage de la classe android.de soutien.de la conception.widget de.CollapsingToolbarLayout.
J'ai mis à jour le android studio le week-end dernier. Avant la mise à jour, il fonctionne très bien. Après j'ai mis à jour, il s'est écrasé. Cependant, j'ai essayé de rétrograder pour version 2.0.0 et ça ne marche plus. Mon collègue n'a pas de problème avec le CollapsingToolbarLayout. Je ne suis pas sûr de ce qui s'est passé.
L'erreur était:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.android/com.test.android.ui.activity.RandomActivity}: android.view.InflateException: Binary XML file line #22: Error inflating class android.support.design.widget.CollapsingToolbarLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: android.view.InflateException: Binary XML file line #22: Error inflating class android.support.design.widget.CollapsingToolbarLayout
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
at com.test.android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
at com.test.android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NoSuchMethodError: No static method setLayoutDirection(Landroid/graphics/drawable/Drawable;I)V in class Landroid/support/v4/graphics/drawable/DrawableCompat; or its super classes (declaration of 'android.support.v4.graphics.drawable.DrawableCompat' appears in /data/app/com.test.android-1/base.apk)
at android.support.design.widget.CollapsingToolbarLayout.setStatusBarScrim(CollapsingToolbarLayout.java:663)
at android.support.design.widget.CollapsingToolbarLayout.<init>(CollapsingToolbarLayout.java:197)
at android.support.design.widget.CollapsingToolbarLayout.<init>(CollapsingToolbarLayout.java:132)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:136)
at com.test.android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
Voici mon CollapsingToolbarLayout:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
app:contentScrim="@color/blue"
app:statusBarScrim="@color/blue_dark"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
>
<include layout="@layout/layout_page" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include
layout="@layout/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</android.support.design.widget.CoordinatorLayout>
Voici mon gradle fichier:
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:support-v13:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:customtabs:23.4.0'
compile 'com.android.support:design:23.4.0'
Avez-vous une idée? Merci.
- Je pense qu'il ya plus de que le message d'erreur que vous montrez.
- Salut @cricket_007, vous avez raison. il y a plus de message d'erreur et il est tout au sujet de l'erreur AppCompatActivity.setContentView. Avez-vous une idée? Merci
- Recherchez les mots "Causé par". Vous êtes l'obtention d'un "NoSuchMethodError", ce qui voudrait dire que les différentes versions de la bibliothèque de prise en charge semblent avoir ajouté quelques méthodes supplémentaires
InformationsquelleAutor Shumin | 2016-05-24
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution Peut-il travailler essayer:
ajouter le code ci-dessous dans le fichier de build gradle
Semble que c'est d'avoir de conflit de version problème. Toutes bibliothèque de prise en charge doit être de la même version. Cependant, je n'ai pas utilisé v4 bibliothèque de prise en charge avant et ça fonctionne.
Je ne sais pas pourquoi updatimg android studio 2.1.1 l'origine du problème.
Je viens de forcer tous les v4 bibliothèque de la même façon que les autres bibliothèques de prise en charge.
firebase
et mise à jourplay services
Je sais qu'il est accepté comme réponse, MAIS ça ne fonctionne pas (ou ne fonctionne plus).
J'ai passé quelques heures de recherche sur cette erreur, que je suis venu a cette.
Tout d'abord, en raison initiale de la version d'Android, Nougat, également connu sous Android 7.0 (API 24) compileSdkVersion 24 est désormais disponible. Pour ce faire, vous devez mettre à jour votre kit de développement. Étape 1
Deuxième, est de mettre à jour votre gradle fichiers (connexion internet requise). Étape 2
Également mettre à Jour cette partie de l'application.gradle
Troisième (en option) Nettoyage de Projet, Projet de construction d' (à la Fois en vertu de l'Onglet Build)
J'espère que cela a aidé quelqu'un là-bas et d'économiser quelques heures de recherches.
Cheers /codage Heureux
j'ai trouvé deux solutions,
premier est
deuxième est de forcer l'application
Sources prises de ici
J'ai eu le même problème, @Shumin code est efficace aussi, mais il est préférable de supprimer les conflits au lieu de les contourner. Afin de trouver le conflit
Dans Android Studio, ouvrez
Terminal
et entrezgradlew app:dependencies
.Vérifier les dépendances de l'arbre et de voir que la bibliothèque est à l'origine de conflits
Mise à jour:-
Pour vérifier les conflits, vérifiez les dépendances de chaque bibliothèque et de voir si vous n'utilisez pas la même dépendance dans une autre bibliothèque, mais avec différentes version. Par exemple, dans l'image ci-dessous,
com.android.support:appcompat-v7
dépend decom.android.support:support-vector-drawable:23.4.0
. Si vous trouvez une autre bibliothèque en fonctioncom.android.support:support-vector-drawable
mais la version est différente, alors vous avez trouvé votre conflit.Mon problème est que pas toutes de la bibliothèque de prise en charge gradle les importations nous avons le même, par exemple, j'ai eu:
modification pour toutes les importations étaient
24.0.0
permis l'exécution de l'application sans problèmes.Bonjour les Ami je fais face à ce problème
Juste Faire
Et Tout le soutien gradle changement de 25.1.1, c'est le travail pour moi .
veuillez ajouter le code ci-dessous dans menifiest.xml.
et le style de fichier de ressources
J'ai eu le même problème en montrant la même erreur tout en gonflant le CollapsingToolbar..
J'ai eu les dépendances suivantes dans mon application gradle fichier
et outil de construction 25.0.2 avec compilé avec l'API 23 sdk.
J'ai vérifié que les dépendances et a constaté que firebase utilise
et la appcompat utilise
Donc, j'ai changé tous les construire la bibliothèque nombre de
Il a travaillé pour moi maintenant. Comment durable ? Je n'ai pas la moindre idée.
Cela a fonctionné pour moi. Changez-vous votre
appcompact
et la conceptionlibray
version comme suit,Si vous travaillez sur Oreo ou supérieure sdk et à l'aide d'un drawable dans CollapsingToolbar, cochez cette drawable existe dans normal drawable dossier et drawable-v24 dossier.
Si votre drawable est seulement dans drawable-v24 dossier et de l'exécution de l'application sous Oreo sdk, Android Studio logcat dit "crash dans CollapsingToolbar" mais le vrai problème est le manque quelques un drawable dans votre dossier drawable.