Application crash lors de l'utilisation de RecyclerView sur android 5.0
Je suis en train de jouer avec le nouveau RecyclerView et à chaque fois que j'essaie de le lancer, mon application se bloque immédiatement. Il me donne NullPointerException pour essayer d'accéder à des méthodes de android.support.v7.widget.RecyclerView
. J'ai regardé les autres posts et vu que la plupart des gens n'ont pas compile 'com.android.support:recyclerview-v7:+'
mais j'ai essayé et ça n'a pas aidé du tout. Pas vraiment sûr de ce que pour faire à ce stade, toute aide serait appréciée. Ici le journal des erreurs: (je voudrais poster une photo mais je n'ai pas de 10 rep encore)
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764)
at android.view.View.measure(View.java:17430)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17430)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17430)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
at android.view.View.measure(View.java:17430)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5786)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
- poster votre code...
- pour quelqu'un qui a cette erreur causée par la Viewpager onglets voir ce solution
- Avez-vous résolu ce problème ?.S'il vous plaît aider, je vais avoir le même problème
- N'oubliez pas de définir/créer/enregistrer dans
onCreateView
ce que vous supprimer/détruire/unregister dansonDestroyView
... Dois suivre ces cycles de vie!
Vous devez vous connecter pour publier un commentaire.
Ce problème se produit généralement lorsque aucune
LayoutManager
a été fourni pour laRecyclerView
. Vous pouvez le faire comme ceci:final
, c'est pourquoi j'ai déclaréfinal
ici.Dans mon cas, il n'était pas connecté à la "finale", mais le problème mentionné dans @NemanjaKovačević commentaire de @aga réponse.
J'ai été la mise un layoutManager sur les données de charge et qui a été la cause de la même incident.
Après le déplacement de la layoutManager le programme d'installation pour onCreateView de mon fragment le problème a été résolu.
Quelque chose comme ceci:
LayoutManager
n'est pas, c'est ça. Vous pouvez faire de la variable pointant versLayoutManager
final, ou pas final ça ne change rien.Pour moi, j'ai eu le même problème, le problème était qu'il y avait une caserne de RecyclerView en xml avec vue là, mais je ne suis pas la lier à n'importe quel adaptateur de l'Activité, donc la question. Il a été résolu dès que j'ai enlevé inutilisé recycleur vues xml
je.e - j'ai enlevé ce point de vue que ce n'a pas été appelé dans le code ou dans n'importe quel adaptateur a été mis en
J'ai vécu ce crash, même si j'ai eu le
RecyclerView.LayoutManager
correctement configuré. J'ai dû passer leRecyclerView
code d'initialisation dans leonViewCreated(...)
de rappel pour résoudre ce problème.RecyclerView
code d'initialisation dans leonViewCreated(...)
travailléVous devez utiliser
setLayoutManager
dans leRecyclerView#onCreate()
méthode. Avant d'ajouterrecyclerView
à vue, il doit avoir laLayoutManager
ensemble.Vérifier avec vous recycleur de vue ID, soulignant réelle recycleur vue de résoudre mon problème
J'ai eu ce problème à cause d'une mauvaise référence de
RecyclerView
id.à
Mon problème était dans mon XML lyout j'ai un android:animateLayoutChanges la valeur true et que j'ai appelé notifyDataSetChanged() sur le RecyclerView de l'adaptateur dans le code Java.
Donc, j'ai juste enlevé android:animateLayoutChanges de ma mise en page et que resloved mon problème.
J'ai eu ce problème lors de l'utilisation de Butterknife de la bibliothèque.
J'ai eu:
Mais la version correcte est:
J'ai été en utilisant un l'Injection de Dépendance - ButterKnife et ce problème surgissent parce que je n'avais pas lié à la vue.
Donc à l'intérieur onCreate() j'ai juste inséré cette ligne:
Mon RecyclerView déclaration avec l'Injection de Dépendance:
Depuis LinearLayoutManager est vertical par défaut, un moyen plus facile de le faire est:
recyclerView.setLayoutManager(new LinearLayoutManager(context));
Si vous souhaitez modifier l'orientation que vous pourriez utiliser ce constructeur:
Je pense que le problème dans votre
Adapter
.Assurez-vous que vous avez retourné
ViewHolder
dansonCreateViewHolder()
.Comme ci-dessous:
Pour moi le problème était avec mon activity_main.xml(21), dans laquelle la recycleView n'a pas un id.
activity_main.xml(21)
activity_main.xml
Il a travaillé quand j'ai ajouté un android:id="@+id/transac_recycler_view" à la activity_main.xml(21) recycleView
Dans Gradle mettre en œuvre cette bibliothèque :
Dans XML mentionner comme ceci :
Dans Fragment nous utilisons
recyclerView
comme ceci :Dans Activité nous utilisons
RecyclerView
comme ceci :si vous avez besoin d' horizontale
RecyclerView
ce faire :si vous souhaitez utiliser GridLayoutManager à l'aide de
RecyclerView
utiliser comme ceci :Dans mon cas, j'ai ajouté seulement butterknife bibliothèque et oublier d'ajouter annotationProcessor. En ajoutant en dessous de la ligne à construire.gradle (App module), a résolu mon problème.
Si je où je vais vous faire.
onView(withId(android.R.id.liste)).effectuer(RecyclerViewActions.scrollToPosition(3));
android.R.id.le changement liste à votre liste d'id et de position sera votre position à l'intérieur de votre tableau.
écriture de code dans onCreateView()
RecyclerView recyVideo = vue.findViewById(R. id.recyVideoFag);
l'écriture de code dans onCreate()
RecyclerView recyVideo = findViewById(R. id.recyVideoFag);