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.
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
(pour les utilisateurs intellij)
Pour résoudre ce problème. Commence par ajouter cardview à partir de\sdk\extras\Android\support
Ça marche pour moi.
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.
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
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>
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.