Choreografer NullPointerException

8

Ich habe eine Weile an einer vorhandenen Codebasis gearbeitet und beim Durchsuchen unseres Crashprotokolldienstes ist mir eine Ausnahme aufgefallen, die ziemlich häufig auftritt. Ich kann dieses Problem nicht reproduzieren, noch habe ich den Kontext für die Szenario zu versuchen und zu graben, da dies ein ziemlich großes Projekt ist, ist es immer schwieriger geworden, die Ursache dieser Ausnahme herauszufinden.

Ich habe online nach ähnlichen Problemen gesucht und konnte keine nützlichen Informationen finden. Wenn jemand mit diesem Problem vertraut ist, wird Ihre Hilfe sehr geschätzt.

Stacktrace ist wie folgt:

%Vor%

Prost.

    
woot 08.06.2014, 11:51
quelle

7 Antworten

6

Das Problem stellte sich als eine Animation heraus, die von Handler unter Verwendung von postDelayed() aufgerufen wurde. Dies führte schließlich dazu, dass versucht wurde, eine Null View -Referenz zu animieren, da sie entsprechend den Host-Lebenszyklusereignissen nicht ordnungsgemäß gelöscht wurde .

    
woot 09.06.2014, 10:36
quelle
3

vielleicht Sie Tagret ist Null, print log mit animatorSet.getTarget () zu sehen

    
Raul Yang 17.07.2015 02:21
quelle
2

Ich bekomme auch diese Stack-Trace, wenn ich verwende: ObjectAnimator animator = ObjectAnimator.ofFloat (this, "scale", 1); .... animator.start ()

in Android 4.0.X laufen, aber es ist in Ordnung für höhere Version, können Sie auch beziehen dieses commit , obwohl ich nicht beheben kann, aber das ist die Ursache definitiv.

    
jiangyan.lily 15.12.2015 07:50
quelle
0

Ich habe jetzt diese Ausnahme durchlaufen und herausgefunden, dass ich die Instanz der Ansicht mit Animation von getActivity().findViewById erhalte. Während ich in einem -Fragment war musste ich es aus dem rootview inflated mit der Ansicht instanziieren.

Ich habe die Ansicht von der Aktivität in das Fragment-Layout verschoben, aber den Code nicht geändert. So hat das rootview.findViewById mein Problem gelöst.

Mein Stacktrace:

%Vor%     
Davidea 04.04.2015 22:14
quelle
0

Vertrau mir, ich habe die Lösung dieses Absturzproblems auf 4.0.x-Geräten gefunden.

Das Problem ist, wenn Sie ObjectAnimator ohne den Wert 'start' und 'end' verwenden, kann die API auf 4.0.x-Geräten den zu implementierenden Startwert nicht finden.

Dies führt zum Beispiel zum Absturz auf 4.0.x-Geräten

%Vor%

Und dieser Code funktioniert perfekt auf allen Geräten auf API-Ebene

%Vor%     
Daniel Deng 19.07.2017 04:23
quelle
0

Der Grund ist die Zielansicht ist null . ObjectAnimator ofFloat(Object target, ...) .
Dieser Absturz wird nur in einem 4x Gerät ausgelöst.
Es gibt keinen Absturz in einem anderen Gerät

    
Phan Van Linh 09.11.2017 03:01
quelle
-1

Ich löse das Problem, indem ich die Animation einem animationSet einfach so hinzufüge:

    
103king 24.04.2017 02:17
quelle

Tags und Links