J'ai rencontré de manière inattendue l'erreur suivante lors de la tentative d'exécution de mon application:
Binary XML file line #8: Error inflating class Android.support.v7.widget.CardView
Ci-dessous le chat de journal:
11-09 13:11:58.558: E/AndroidRuntime(12542): FATAL EXCEPTION: main
11-09 13:11:58.558: E/AndroidRuntime(12542): Android.view.InflateException: Binary XML file line #8: Error inflating class Android.support.v7.widget.CardView
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:698)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:746)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:489)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.inflate(LayoutInflater.Java:396)
11-09 13:11:58.558: E/AndroidRuntime(12542): at com.dooba.beta.ThirdFragment.onCreateView(ThirdFragment.Java:15)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.Fragment.performCreateView(Fragment.Java:1786)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.Java:947)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.Java:1126)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.BackStackRecord.run(BackStackRecord.Java:739)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.Java:1489)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.Java:454)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.os.Handler.handleCallback(Handler.Java:615)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.os.Handler.dispatchMessage(Handler.Java:92)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.os.Looper.loop(Looper.Java:137)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.app.ActivityThread.main(ActivityThread.Java:4745)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Java.lang.reflect.Method.invokeNative(Native Method)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Java.lang.reflect.Method.invoke(Method.Java:511)
11-09 13:11:58.558: E/AndroidRuntime(12542): at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:786)
11-09 13:11:58.558: E/AndroidRuntime(12542): at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:553)
11-09 13:11:58.558: E/AndroidRuntime(12542): at dalvik.system.NativeStart.main(Native Method)
11-09 13:11:58.558: E/AndroidRuntime(12542): Caused by: Java.lang.ClassNotFoundException: Android.support.v7.widget.CardView
11-09 13:11:58.558: E/AndroidRuntime(12542): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:61)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Java.lang.ClassLoader.loadClass(ClassLoader.Java:501)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Java.lang.ClassLoader.loadClass(ClassLoader.Java:461)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.createView(LayoutInflater.Java:552)
11-09 13:11:58.558: E/AndroidRuntime(12542): at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:687)
11-09 13:11:58.558: E/AndroidRuntime(12542): ... 19 more
Ci-dessous le code Java:
public class ThirdFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_city, container, false);
return rootView;
}
}
Ci-dessous le code de mise en page:
<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"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
>
<!-- 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"
>
<TextView
Android:id="@+id/info_text"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
/>
</Android.support.v7.widget.CardView>
</LinearLayout>
Merci d'avance
J'ai résolu ce problème en ajoutant cardview et appcompat à jour dans l'application/build.gradle.
dependencies {
...
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
}
Puis reconstruire le projet
Vous devez spécifier une dépendance à la v7 cardview library
Modifiez le fichier build.gradle et spécifiez "com.Android.support:cardview-v7:21.0.+" dans la section des dépendances.
Les réponses ci-dessus n'ont pas aidé. Fonctionne bien après avoir ajouté
<Android.support.v7.widget.CardView
...
xmlns:app="http://schemas.Android.com/apk/res-auto"
app:cardBackgroundColor="@Android:color/transparent">
Je ne peux pas expliquer.
Pour résoudre ce problème, vous devez d'abord ajouter cardview à partir du
Ça marche pour moi.
le problème est avec vos dépendances
essayez cette lecture attentivement chaque étape
https://developer.Android.com/tools/support-library/setup.html#libs-with-res
Lors de la vérification de toutes vos dépendances, il suffit de vérifier le fichier de classe Java associé qui est le étend AppCompatACtivity ou non . Cela vous aidera certainement.