Android Snackbar NullPointerException in Fragment
Möchte ich hinzufügen, dass eine grundlegende snackbar auf meine Bewerbung erhalten, aber ich erhielt eine Fehlermeldung, dass ich nicht herausfinden konnte, warum.
Fügte ich diesen code in der onCreateView () - Methode in meiner Fragment.
Snackbar.make(view, "Snackbar", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
Und diesen Fehler erhalten:
06-01 10:26:09.955 1232-1232/? E/ActivityThread﹕ Failed to find provider info for me.muraterdogan.watchme.MetricaContentProvider
06-01 10:26:10.075 1232-1447/? E/ActivityThread﹕ Failed to find provider info for me.muraterdogan.watchme.YPLContentProvider
06-01 10:33:55.044 6646-6646/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: me.muraterdogan.watchme, PID: 6646
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext()' on a null object reference
at android.support.design.widget.Snackbar.<init>(Snackbar.java:116)
at android.support.design.widget.Snackbar.make(Snackbar.java:140)
at me.muraterdogan.watchme.fragments.TrendingFragment.GetData(TrendingFragment.java:90)
at me.muraterdogan.watchme.fragments.TrendingFragment.onCreateView(TrendingFragment.java:83)
...
InformationsquelleAutor der Frage Murat Erdogan | 2015-06-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Fragment wird zu den bestehenden Hinzugefügt Aktivität(denken Sie Daran, Sie können es hinzufügen, über xml), sollten Sie rufen die SnackBar Methode in der onActivityCreated () - Methode des Fragments.
InformationsquelleAutor der Antwort souleymane sidibé
1.verschieben Sie es auf onActivityCreated Methode.
2.versuchen getView() Methode machen wie folgende:
InformationsquelleAutor der Antwort Michael
In eine Codebasis, an dem ich arbeitete, gab es
Snackbar
s gezeigt, das in der asynchronen Methode Rückrufe wie Fehler-Handler von einem Netzwerk aufrufen. Wenn dieSnackbar
gemacht wurde, dieFragment
es im Begriff war zu gehen, war nicht mehr angebracht und seineView
zurückgegeben durchgetView()
nicht über eineCoordinatorLayout
oderFrameLayout
Snackbar
haben will in der view-Hierarchie.Insbesondere der private
findSuitableParent()
Methode inSnackbar
quer durch die Hierarchie:Das Ergebnis dieser Methode übergeben wird
Snackbar
Konstruktor aufruftgetContext()
auf, und wenn diese Methode gibtnull
du bekommst die NPE als die Frage.Gibt es ein paar Möglichkeiten, um das problem zu beheben, vorausgesetzt, der glückliche Fall, dass eine
CoordinatorLayout
oderFrameLayout
im angehängten Fragmenten hält immer noch:Stellen Sie sicher, dass Ihr fragment ist nicht losgelöst von der überprüfung
isDetached()
ersten.Was ich am Ende dabei mich selbst: Es war schon ein Builder pattern styling-wrapper für die
Snackbar
in der codebase, also habe ich die GabelfindSuitableParent()
im generator und Hinzugefügt eine überprüfung, um zu sehen, es gibt!= null
bevor Sie versuchen, zu nennenSnackbar.make()
. Diese Art der Snackbar builder Anrufer nicht haben, um zusätzliche Kontrollen.InformationsquelleAutor der Antwort laalto
Durch den Prozess, der snack-bar sucht für die Ansicht.
fragment ist noch nicht genannt.
Also die app selbst nicht wirklich wissen, die Laufzeit, die Sie waren eigentlich bezogen auf die Ansicht des fragments.
Versuchen Sie, Ihre snackbar show-Methode auf die "onResume" des fragments.
Hoffe, das hilft.
InformationsquelleAutor der Antwort gorbos
Warum machst du das innerhalb von onCreate?
Darüber hinaus stellen Sie sicher, dass Sie sich nach ein paar Regeln:
InformationsquelleAutor der Antwort AkiAki007
Wie die Dokumentation sagt "Snackbar werde versuchen und finden eine übergeordnete Sicht zu halten, Snackbar Ansicht aus den angegebenen Wert anzeigen".
Also können Sie jede Ansicht, die befestigt ist in dem moment.
InformationsquelleAutor der Antwort Daniel Arroyo