Erreur de gonflage de classe et android.de soutien.v7.widget de.CardView
Je veux utiliser CardView dans mon projet, mais quand je lance mon application, j'obtiens l'erreur suivante. Je suis en utilisant Eclipse
.
Error: Error inflating class and android.support.v7.widget.CardView
The graphical view of my xml file says 'The following classes could not be instantiated:
- android.support.v7.widget.CardView (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.'
S'il vous plaît aider.
C'est la mise en page de mon fragment où j'ai utilisé CardView
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.log.MyContactsFragment" >
<!-- TODO: Update blank fragment layout -->
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/cvContactDetails"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
android:background="?android:attr/selectableItemBackground"
android:clickable="false"
android:elevation="20dp" >
<TextView
android:id="@+id/tvContacts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contact Info" />
<Button
android:id="@+id/bDelete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete" />
<Button
android:id="@+id/bExport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Export to phone contacts" />
</android.support.v7.widget.CardView>
C'est la mise en page de mon activité.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/flMainContent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
<ListView
android:id="@+id/lvLeftDrawer"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:alpha="255"
android:background="#0B2161"
android:divider="@null"
android:choiceMode="singleChoice" >
</ListView>
<ListView
android:id="@+id/lvRightDrawer"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:alpha="255"
android:background="#0B2161"
android:divider="@null"
android:choiceMode="singleChoice" >
</ListView>
</android.support.v4.widget.DrawerLayout>
C'est mon logcat
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.log/com.example.log.HomeScreenActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.example.log.MyContactsFragment.onCreateView(MyContactsFragment.java:60)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:571)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
at android.app.Activity.performStart(Activity.java:5018)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
25 more
Caused by: java.lang.NoClassDefFoundError: android.support.v7.cardview.R$styleable
at android.support.v7.widget.CardView.initialize(CardView.java:203)
at android.support.v7.widget.CardView.<init>(CardView.java:101)
... 28 more
Quelqu'un qui a rencontré le même problème ou résolu, s'il vous plaît commentaire.
- postez votre disposition
- J'ai posté ma présentation. Veuillez vérifier
- Et après logcat trop.
- J'ai posté le logcat. C'est très salissant. Mais s'il vous plaît vérifier et de les aider.
- Avez-vous ajouté de la bibliothèque
android.support.v7
à votre projet ? - Oui, j'ai ajoutées dans il. Pourquoi cette erreur se produit ?
- comment avez-vous ajouter? on dirait que vous n'avez pas l'ajouter à un projet de bibliothèque
- Je suis nouveau sur le développement android. Pouvez-vous donner des précisions et me guide à travers le processus d'ajout d'une bibliothèque de projet
- pas pour eclipse - je utiliser COMME et gradle - là, il est aussi facile que d'ajouter une ligne à construire.gradle fichier
- pouvez-vous tag quelqu'un qui pourrait savoir et peut m'aider ?
- mieux passer à
- Merci pour cette question, et merci à tous ceux qui ont répondu à cette question
- Pour les utilisateurs qui ont déjà de la gradle dépendances et ont
RecyclerView
de travail mais pasCardView
(et si vous utilisez Android Studio), exécutezgradle sync
et puis actualisez la mise en page. Qu'il a fait pour moi.
Vous devez vous connecter pour publier un commentaire.
Je suppose que je peux répondre à ma propre question.
Allez dans Fichier -> Import -> Existant Android code dans l'espace de travail --> Parcourir (Aller à sdk/extras/android/support/v7/cardview) --> Cliquez sur ok --> Cliquez sur Terminer
Votre explorateur de projet va maintenant montrer cardview comme un projet.
Clic droit sur cardview projet --> Propriétés - > Android(Volet de Gauche) --> Activer isLibrary (cochez la case) --> Appliquer --> ok
Maintenant un clic Droit sur votre projet --> Propriétés - > Android(volet de Gauche) --> Add (sous la bibliothèque) --> cardview --> appliquer --> ok
Maintenant un clic droit sur votre projet --> build path --> configure build path --> Sous l'onglet projets, ajouter cardview
Vous avez terminé.
AndroidManifest.xml
. Là, je suis allé à lauses-sdk
section et fait en sorte que sesminSdkVersion
etmaxSdkVersion
appariés mon applicationsminSdkVersion
etmaxSdkVersion
. Qui a résolu l'erreur, après j'ai suivi ces étapes.Je suppose que ton problème n'est pas dans votre xml de mise en page, mais votre build.gradle paramètres.
Lorsque vous souhaitez utiliser la bibliothèque de prise en charge pour Recyclerview ou CardView dans le bas de l'API de périphériques, vous n'avez pas seulement besoin d'importer la v7 de la bibliothèque, mais aussi des besoins d'importation Recycleur Vue de la Carte et la Vue de soutenir de façon indépendante.
Comme ceci:
Ce qui est noté par Google documents ici: https://developer.android.com/training/material/compatibility.html
Voir la section des dépendances.
Vous pouvez également télécharger google échantillon de RecyclerView à creuser.
Espère que cela va vous aider!
CardView
dans le XML.Dans mon cas j'ai du faire deux choses ajouter
android.support.v7.widget.CardView
comme un projet de bibliothèque et également ajouter + vérifier que c'est le fichier jar dansjava build path
Allez dans Fichier -> Import -> Existant Android code dans l'espace de travail --> Parcourir (Aller à sdk/extras/android/support/v7/cardview) --> Cliquez sur ok --> Cliquez sur Terminer
Clic droit sur cardview projet --> Propriétés - > Android(Volet de Gauche) --> Activer isLibrary (cochez la case) --> Appliquer --> ok
Clic droit sur votre projet --> Propriétés - > Android(volet de Gauche) --> Add (sous la bibliothèque) --> cardview --> appliquer --> ok
clic droit sur votre projet --> build path --> configure build path -->sous bibliothèques-->add jar-->développez cardview-->élargir les libs-->sélectionnez
android.support.v7.widget.CardView.jar
en vertu de l'ordonnance et de l'exportation-->vérifiez
android.support.v7.widget.CardView.jar
-->cliquez sur okJ'ai perdu des heures sur ce, pour moi, la dernière pièce du puzzle était d'aller à la "cardview" du projet qui ont été importés dans Eclipse comme un projet Android, ensuite, un clic droit > propriétés > android > et la modifier à partir d'Android 2.1 à Lollipop!
si vous utilisez l'ide, utilisez ces étapes, cela fonctionne
Je suis d'erreur disparu par l'Ajout de Dépendances
La RecyclerView et CardView widgets sont une partie de la v7 Bibliothèques de prise en charge. Pour utiliser ces widgets dans votre projet, ajoutez ces Gradle les dépendances de votre application module:
dépendances {
...
compiler 'com.android.support:cardview-v7:21.0.+'
compiler 'com.android.support:recyclerview-v7:21.0.+'
}
http://developer.android.com/training/material/lists-cards.html
Ces étapes de travail pour moi 🙂
Allez dans Fichier -> Import -> Existant Android code dans l'espace de travail --> Parcourir (Aller à sdk/extras/android/support/v7/cardview) --> Cliquez sur ok --> Cliquez sur Terminer
Votre explorateur de projet va maintenant montrer cardview comme un projet.
Clic droit sur cardview projet --> Propriétés - > Android(Volet de Gauche) --> Activer isLibrary (cochez la case) --> Appliquer --> ok
Maintenant un clic Droit sur votre projet --> Propriétés - > Android(volet de Gauche) --> Add (sous la bibliothèque) --> cardview --> appliquer --> ok
Maintenant un clic droit sur votre projet --> build path --> configure build path --> Sous l'onglet projets, ajouter cardview
une étape de plus que vous avez besoin d'éliminer l'erreur, qui est de l'ordre de cardview lib.
donc un clic droit sur votre projet de nouveau --> propriétés - > Android(volet de gauche)--> sélectionnez cardview lib dans la fenêtre de la bibliothèque --> et se déplacer jusqu'
@sunil
Comme l'a dit avant:
Si cela ne fonctionne pas, passez à ajouter et supprimer des pot de la même package à partir de votre importé de code du projet de bibliothèque du dossier
android-support-v7-cardview/libs
. Retirez le Pot, nettoyez le projet et essayez à nouveau. Supprimer le projet d'un mec a suggéré d'ajouter, de supprimer toutes externes Pot est lié à cardview (je pense que ces provoquer des conflits).Nettoyez le projet et j'espère que ça fonctionne pour vous.
Remarque: personnellement, je n'avez qu'à changer les cardview de la bibliothèque de l'objectif de construire au niveau de 4.0.3 à 5.0 puis retour à 4.1.2, le nettoyage, le projet à chaque fois, pour que cela fonctionne ainsi.
Pour résoudre ce problème .
vous devez d'abord ajouter cardview de la
Qui fonctionne pour moi.
importer les CardView bibliothèque que le Projet Eclipse à la place de la Projet Android
J'ai résolu mon problème en redémarrant l'éclipse. Assurez-vous également que vous avez ajouté les pots dans le build path et il a marqué pour l'import/export.
Cette solution de travail sur moi.
1 - Allez dans "sdk\extras\android\m2repository\com\android\support\recyclerview-v7*22.1.1*" ( 22.1.1 dernière version pour l'instant. )
2 - Ouvrir recyclerview-v7-22.1.1.aar fichier avec Winrar.
3 - Il est un fichier jar nommé classes.jar. Copie à votre projet dossier libs.
4 - clic Droit classes.jar, ajouter à build path.
C'est tout.
Une note: si vous utilisez les bibliothèques de soutien, vous êtes sûr que vos dépendances sont corrects, et vous êtes arrivé ici via une recherche pour "Erreur de gonflage de classe CardView", puis assurez-vous que votre mise en page XML est à l'aide de <android.de soutien.v7.widget de.CardView> et pas seulement <CardView>!
Les deux erreurs sont assez similaires, et il m'a fallu quelques minutes pour facepalm quand j'ai réalisé que je n'étais pas attention au nom complet de la classe dans le message d'erreur et j'ai été en utilisant le non-support <CardView> dans ma mise en page sans s'en rendre compte.
Si vous êtes à l'aide de VISUAL STUDIO et vous obtenez cette erreur, essayez de redémarrer VS et puis recréer la Solution. Ce qui a fonctionné pour moi. J'espère que cela sauve quelqu'un certain temps.