web-dev-qa-db-fra.com

Exception: Android.view.InflateException: ligne de fichier XML n ° 2: erreur lors du gonflage de la classe Android.support.v7.widget.CardView

J'utilise CardView of support library dans mon application Android. J'ai essayé 4 à 5 heures pour résoudre ce problème, mais je n'ai pas réussi.

J'ai ajouté CardView comme bibliothèque dans mon projet et v7 appcompat également

<Android.support.v7.widget.CardView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_margin="5dp"
    Android:orientation="horizontal"
    app:cardCornerRadius="4dp" >

Mais mon application plante avec les journaux ci-dessous

10-31 18:41:39.577: E/AndroidRuntime(5666): FATAL EXCEPTION: main
10-31 18:41:39.577: E/AndroidRuntime(5666): Process: com.xyzladdoo, PID: 5666
10-31 18:41:39.577: E/AndroidRuntime(5666): Android.view.InflateException: Binary XML file line #2: Error inflating class Android.support.v7.widget.CardView
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:707)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.LayoutInflater.inflate(LayoutInflater.Java:469)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.LayoutInflater.inflate(LayoutInflater.Java:397)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at com.xyzladdoo.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:85)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at com.xyzladdoo.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.Java:1)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.Java:2915)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.Java:2511)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.Java:1425)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.Java:999)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.Java:524)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.Java:1461)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.widget.RecyclerView.onLayout(RecyclerView.Java:1600)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.Java:543)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1671)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1525)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1434)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v4.view.ViewPager.onLayout(ViewPager.Java:1594)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.Java:887)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.Java:502)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.setChildFrame(LinearLayout.Java:1671)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.layoutVertical(LinearLayout.Java:1525)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.LinearLayout.onLayout(LinearLayout.Java:1434)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.layoutChildren(FrameLayout.Java:453)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.widget.FrameLayout.onLayout(FrameLayout.Java:388)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.View.layout(View.Java:14860)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewGroup.layout(ViewGroup.Java:4643)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewRootImpl.performLayout(ViewRootImpl.Java:2013)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewRootImpl.performTraversals(ViewRootImpl.Java:1770)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewRootImpl.doTraversal(ViewRootImpl.Java:1019)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.Java:5725)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.Choreographer$CallbackRecord.run(Choreographer.Java:761)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.Choreographer.doCallbacks(Choreographer.Java:574)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at Android.view.Choreographer.doFrame(Choreographer.Java:544)
10-31 18:41:39.577: E/AndroidRuntime(5666):     at an

De l'aide ? Merci d'avance.

8
N Sharma

Laisser importer cardview en tant que bibliothèque:
Allez dans Fichier -> Importer -> Code Android existant dans l'espace de travail -> Parcourir (Allez à sdk/extras/Android/support/v7/cardview) -> Cliquez sur ok -> Cliquez sur Terminer

Votre explorateur de projet affichera maintenant cardview en tant que projet.

Faites un clic droit sur le projet cardview -> Propriétés -> Android (volet gauche) -> Activer isLibrary (cochez la case) -> Appliquer -> ok

Maintenant, faites un clic droit sur votre projet -> Propriétés -> Android (volet gauche) -> Ajouter (sous la bibliothèque) -> cardview -> appliquer -> ok

Maintenant, cliquez à nouveau avec le bouton droit de la souris sur votre projet -> chemin de construction -> configurer le chemin de construction -> sous l'onglet projets, ajoutez cardview

Vous avez terminé.
La source

7
Justin

(pour les utilisateurs intellij)

  • cliquez dans votre projet,
  • clic droit -> ouvrir les paramètres du module
  • importer une vue de carte à partir de\sdk\extras\Android\support\v7 \
  • ajouter un fichier .jar au module cardview
  • cliquez sur votre projet et donnez la dépendance du module à cardview
  • maintenant, cliquez sur le bouton (+) sur cardview -> Android -> en haut, une case à cocher (module de bibliothèque) apparaît, activez-la.
  • cliquez sur OK et fermez la boîte de dialogue de configuration.
  • reconstruisez votre projet et exécutez-le.
2
SureshCS50

Pour résoudre ce problème. Commence par ajouter cardview à partir de\sdk\extras\Android\support

  1. Fermez le projet principal.
  2. Supprimez Android-support-v7-appcompat.
  3. Redémarrez l'Eclipse.
  4. Ajoutez le Android-support-v7-appcompat.
  5. Nettoyer, pour construire le projet.
  6. Ensuite, ouvrez le projet principal et construisez tous les projets.
  7. L'erreur reste toujours. Redémarrez Eclipse. C'est tout.

Ça marche pour moi.

1
Hemant Shori

Les bibliothèques de support contenant des ressources autres que des classes compilées (telles que des fichiers XML) ne peuvent pas être ajoutées en tant que simples fichiers JAR.

Veuillez suivre les étapes décrites par ceci:

https://developer.Android.com/tools/support-library/setup.html#libs-with-res

Laissez-nous maintenant si cela fonctionne.

1
MohammedEAmer

Essaye ça..

<Android.support.v7.widget.CardView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    xmlns:card_view="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/card_view"
    Android:layout_gravity="center"
    Android:layout_width="200dp"
    Android:layout_height="200dp"
    card_view:cardCornerRadius="4dp">


</Android.support.v7.widget.CardView>

Référence : Créer des cartes

0
Pragnesh Ghoda シ

Essayez d’utiliser comme ceci avec la couche linéaire externe.

 <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    xmlns:card_view="http://schemas.Android.com/apk/res-auto"
    ... >
    <!-- A CardView that contains a TextView -->
    <Android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/card_view"
        Android:layout_gravity="center"
        Android:layout_width="200dp"
        Android:layout_height="200dp"
        card_view:cardCornerRadius="4dp">

        <TextView
            Android:id="@+id/info_text"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent" />
    </Android.support.v7.widget.CardView>
</LinearLayout>
0
Ashwin S Ashok

J'ai eu le même problème que toi. 

Dans Eclipse , lorsque vous importez cardview à partir du répertoire\sdk\extras\Android\support\v7\cardview, suivez les étapes commentées dans "Ajout de bibliothèques avec des ressources -> Eclipse" dans le documentation officielle: https://developer.Android.com/intl/es/tools/support-library/setup.html#libs-with-res

Avant d’ajouter cardview à votre projet en tant que bibliothèque, allez dans "Propriétés -> Android" de projet de cardview et ajoutez la bibliothèque Android-support-v7-appcompat. N'oubliez pas de cocher "IsLibrary".

Maintenant, vous pouvez ajouter cardview en tant que bibliothèque à votre projet. Nettoyez les deux projets pour actualiser les modifications.

J'espère que ça t'aide.

0
jelogar