J'essaie d'utiliser RecyclerView dans mon projet existant, construit sans erreurs, mais aucune erreur de classe n'est trouvée pour RecyclerView lors du gonflage. Je ne vois pas ce que je fais mal. Merci pour ton aide!
//activity_main.xml
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_height="match_parent"
Android:layout_width="match_parent"
Android:orientation="vertical">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recyclerView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
</LinearLayout>
//MainActivity.onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
ItemData itemsData[] = { new ItemData("Help",R.drawable.visa),
new ItemData("Delete",R.drawable.sample),
new ItemData("Cloud",R.drawable.sample),
new ItemData("Favorite",R.drawable.sample),
new ItemData("Like",R.drawable.sample),
new ItemData("Rating",R.drawable.sample)};
// 2. set layoutManger
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 3. create an adapter
MyAdapter mAdapter = new MyAdapter(itemsData);
// 4. set adapter
recyclerView.setAdapter(mAdapter);
// 5. set item animator to DefaultAnimator
//recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setHasFixedSize(true);
}
//build.gradle
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 20
buildToolsVersion '19.1.0'
defaultConfig {
applicationId "com.domain.project"
minSdkVersion 19
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.Android.support:support-v4:+'
compile 'com.Android.support:support-v13:+'
compile project(':facebook-3.15')
compile project(':parse-1.5.1')
compile project(':viewpagerindicator-2.4.1')
compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar:3.1.2'
compile 'com.Android.support:cardview-v7:+'
compile 'com.Android.support:recyclerview-v7:+'
compile 'com.google.Android.gms:play-services:+'
}
configurations {
// to avoid double inclusion of support libraries
all*.exclude group: 'com.Android.support', module: 'support-v4'
}
// LOGCAT
08-24 17:49:27.626 27544-27544/com.domain.project E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.domain.project, PID: 27544
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.domain.project/com.domain.project.MainActivity}: Android.view.InflateException: Binary XML file line #7: Error inflating class Android.support.v7.widget.RecyclerView
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2215)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2264)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1205)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:136)
at Android.app.ActivityThread.main(ActivityThread.Java:5139)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:796)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:612)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Android.view.InflateException: Binary XML file line #7: Error inflating class Android.support.v7.widget.RecyclerView
at Android.view.LayoutInflater.createView(LayoutInflater.Java:620)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:696)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:755)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:492)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:397)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:353)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:343)
at Android.app.Activity.setContentView(Activity.Java:1929)
at com.domain.project.MainActivity.onCreate(MainActivity.Java:35)
at Android.app.Activity.performCreate(Activity.Java:5231)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1087)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2169)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2264)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1205)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:136)
at Android.app.ActivityThread.main(ActivityThread.Java:5139)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:796)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:612)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Constructor.constructNative(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:594)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:696)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:755)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:492)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:397)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:353)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:343)
at Android.app.Activity.setContentView(Activity.Java:1929)
at com.domain.project.MainActivity.onCreate(MainActivity.Java:35)
at Android.app.Activity.performCreate(Activity.Java:5231)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1087)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2169)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2264)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1205)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:136)
at Android.app.ActivityThread.main(ActivityThread.Java:5139)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:796)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:612)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Java.lang.NoClassDefFoundError: Android.support.v4.util.Pools$SimplePool
at Android.support.v7.widget.RecyclerView.<init>(RecyclerView.Java:121)
at Android.support.v7.widget.RecyclerView.<init>(RecyclerView.Java:213)
at Java.lang.reflect.Constructor.constructNative(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:594)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:696)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:755)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:492)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:397)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:353)
at com.Android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.Java:343)
at Android.app.Activity.setContentView(Activity.Java:1929)
at com.domain.project.MainActivity.onCreate(MainActivity.Java:35)
at Android.app.Activity.performCreate(Activity.Java:5231)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1087)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2169)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2264)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1205)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:136)
at Android.app.ActivityThread.main(ActivityThread.Java:5139)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:515)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:796)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:612)
at dalvik.system.NativeStart.main(Native Method)
Veuillez vérifier que vos bibliothèques de support sont mises à jour au plus tard.
com.Android.support:support-v4: et com.Android.support:recyclerview-v7
Il suffit d’ajouter ce qui suit dans votre proguard-rules.pro,
-keep public class Android.support.v7.widget.** { *; }
Mon problème était que la bibliothèque a été compilée en utilisant JDK1.6 au lieu de 1.7.
Trouvé la solution ici link
Ajouter des dépendances dans le fichier Gradle.
dependencies{
compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:recyclerview-v7:23.3.0'
}
Je l'ai compris. La suppression de la configuration suivante dans build.gradle permet à recyclerview de fonctionner. Cela me conduit à une autre question: Android studio: gradle dependency error
-
configurations {
// to avoid double inclusion of support libraries
all*.exclude group: 'com.Android.support', module: 'support-v4'
}
Découvrez ma réponse ici Erreur lors du gonflage de la classe RecyclerView . En résumé, vous devez importer les dépendances Recyclerview et appcompat et les synchroniser avant d'essayer d'ajouter RecyclerView à votre fichier XML.
--- Cité sur le site Android.
Les dépendances
Pour utiliser ces fonctionnalités dans des versions d'Android antérieures à la version 5.0 (API de niveau 21), incluez la bibliothèque de support Android v7 dans votre projet en tant que dépendance Gradle:
dependencies {
compile 'com.Android.support:appcompat-v7:21.0.+'
compile 'com.Android.support:cardview-v7:21.0.+'
compile 'com.Android.support:recyclerview-v7:21.0.+'
}
Assurez-vous que vous avez ajouté les dépendances appropriées pour recyclerView ..__, puis vérifiez si vous avez une dépendance pour cardView.
Si oui, alors
supprimer la dépendance de la vue de la carte
projet de synchronisation
puis à nouveau ajouter une dépendance de vue de carte
projet propre
projet de reconstruction
Ça a fonctionné pour moi
Pour que cela fonctionne sous Eclipse dans mon cas, j’ai ajouté RecyclerView en tant que bibliothèque dans l’espace de travail. Et ensuite ajouté à mon projet sous Android LIBRARY. Finalement. Trois heures perdues.
Après avoir tout essayé sur Internet, j'ai résolu recyclerview une erreur grossissante en observant une petite erreur ..__ D'abord, Avez-vous vérifié votre bibliothèque Android-support-v7-recyclerview.jar
présente dans le dossier libs? si c'est le cas, vérifiez si votre fichier de manifeste contenant la version de sdk cible sur 21
<uses-sdk
Android:minSdkVersion="11" //or whatever you need
Android:targetSdkVersion="21" />
peut être cela peut aider pour quelqu'un à l'avenir et ne pas perdre des jours derrière, comme je l'ai fait.
J'ai eu le même message d'erreur et j'ai essayé plusieurs des étapes suggérées à partir des réponses fournies sur ce site.
Java.lang.RuntimeException: impossible de démarrer l'activité ComponentInfo {com.abc.def/com.abc.def.MainActivity}: Android.view.InflateException: ligne de fichier XML binaire # 8:
Finalement, j'ai réalisé que pour certaines raisons, la balise dans ma mise en page était:
Android.support.v7.internal.widget.RecyclerView
au lieu de
Android.support.v7.widget.RecyclerView.
Je ne sais pas trop comment "interne" s'est glissé entre la v7 et le widget, mais une fois que j'ai supprimé cela, l'erreur a disparu. Ne dites pas que d'autres personnes commettront la même erreur, mais simplement pour faire savoir aux gens qu'une faute de frappe quelque part dans votre mise en page xml pourrait être la cause de ce message d'erreur.