Erreur lors du gonflement de la classe CollapsingToolbarLayout

Mon collapsingToolbarLayout se bloque en raison de l'erreur de gonflement de la classe android.support.design.widget.CollapsingToolbarLayout.

J'ai mis à jour le studio Android le week-end dernier. Avant la mise à jour, cela fonctionne bien. Après l'avoir mis à jour, il s'est écrasé. Cependant, j'ai essayé de le dégrader vers la version 2.0.0 et ça ne fonctionne plus. Mon collègue n'a aucun 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 fichier gradle:

 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' 

Vous avez une idée? Merci.

7 Solutions collect form web for “Erreur lors du gonflement de la classe CollapsingToolbarLayout”

J'ai trouvé une solution Peut-il fonctionner, essayez-le:

Ajouter un code ci-dessous dans le fichier de compilation de gradle

 compile ('com.android.support:support-v4:23.4.0'){ force = true; } 

On dirait avoir un problème de conflit de version. Toute la bibliothèque de support doit être de la même version. Cependant, je n'ai pas utilisé la bibliothèque de support v4 avant et ça marche. Je ne sais pas pourquoi updatimg android studio to 2.1.1 cause le problème. Je force tout la bibliothèque v4 à la même chose que d'autres bibliothèques de support.

Je sais qu'il y a déjà une réponse acceptée, MAIS il ne fonctionne pas (ou ne fonctionne plus).

J'ai passé quelques heures à faire des recherches sur cette erreur, ce que je suis venu, c'était cela.

Tout d'abord, en raison de la version initiale de Android Nougat également connu sous le nom de Android 7.0 (API 24) compileSdkVersion 24 est maintenant disponible. Pour ce faire, vous devez mettre à jour votre sdk. Étape 1

Entrez la description de l'image ici

Deuxièmement, est de mettre à jour vos fichiers gradle (connexion Internet requise). Étape 2

Entrez la description de l'image ici

Mettez également à jour cette partie de app.gradle

Entrez la description de l'image ici

Troisième (facultatif) projet propre, projet de construction (tous les deux sous onglet Création)

J'espère que cela a aidé quelqu'un là-bas et économiser quelques heures de recherche.

Cheers / Happy coding

J'ai trouvé deux solutions,

Le premier est

 app:statusBarScrim="@null" 

Deuxième consiste à forcer l'application

 compile ('com.android.support:support-v4:23.4.0') { force = true; } 

Sources prises ici

J'ai eu le même problème, le code de Shumin est efficace aussi, mais il vaut mieux supprimer les conflits au lieu de les contourner. Pour trouver le conflit –

  1. Dans Android Studio, ouvrez Terminal et entrez l' gradlew app:dependencies . Image du terminal

  2. Vérifiez l'arborescence des dépendances et consultez la bibliothèque qui cause un conflit Dépendances

Mise à jour: – Pour vérifier les conflits, vérifiez les dépendances de chaque bibliothèque et vérifiez si vous n'utilisez pas la même dépendance dans une autre bibliothèque mais avec une version différente. Par exemple, dans l'image ci-dessous, com.android.support:appcompat-v7 dépend de com.android.support:support-vector-drawable:23.4.0 . Si vous trouvez une autre bibliothèque en fonction de com.android.support:support-vector-drawable mais la version est différente, vous avez trouvé votre conflit.

Ma question portait sur le fait que nous n'utilisions pas toutes les bibliothèques de support, nous avons la même chose, par exemple, j'ai eu:

  compile('com.android.support:recyclerview-v7:23.4.0') { exclude module: 'support-v4' } compile 'com.android.support:support-annotations:24.0.0' 

En changeant de sorte que toutes les importations étaient 24.0.0 activées pour que l'application puisse s'exécuter sans problèmes.

Bonjour, ami, je suis confronté à ce problème

Juste faire

 compileSdkVersion 25 buildToolsVersion "25.0.2" 

Et tous les changements de soutien changent à 25.1.1. Cela fonctionne pour moi.

Ajoutez le code ci-dessous dans menifiest.xml.

  <activity android:name=".MainActivity" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Et fichier de ressources de style

 <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 
coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.