2016-08-08 41 views
0

Ich arbeite derzeit an einer Android App mit Xamarin.Android (C#).Android - NullReferenceException auf Scroll/Drag-and-Drop (setDragFocus)

Ich habe eine Drag-and-Drop-Autoscroll-Listenansicht entwickelt, wie in dieser gist zu sehen.

Es funktioniert erstaunlich gut, aber manchmal, nur manchmal, es stürzt ab und hinterlässt keine Ahnung warum. Eine Ausnahme wird geworfen „in nicht verwalteten Code“ und die nur nützliche Informationen, die der Debugger zeigt das ist Stacktrace:

--- End of managed Java.Lang.NullPointerException stack trace --- 
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewRootImpl.setDragFocus(android.view.View)' on a null object reference 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1454) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1482) 
    at android.view.ViewRootImpl.handleDragEvent(ViewRootImpl.java:5337) 
    at android.view.ViewRootImpl.access$600(ViewRootImpl.java:108) 
    at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3464) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:152) 
    at android.app.ActivityThread.main(ActivityThread.java:5497) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Ich vermute, nicht wirklich können Sie mir sagen, warum dies geschieht, aber vielleicht gibt es eine Möglichkeit, dies zumindest richtig zu debuggen?

Nirgendwo, nicht einmal im Log, sagt es irgendetwas über einen Fehler in meiner Anwendung, es stürzt einfach ab. Boom und gegangen.

+0

Ich schaute auf Ihre 'XamarinScrollableListView' Ich sehe nichts falsch darin. Ich würde annehmen *** *** etwas Müll außerhalb dieser Klasse gesammelt wird, aber das ist ein wilder Swing im Dunkeln, es sei denn, Sie können einen Testfall dafür machen/posten ... – SushiHangover

Antwort

0

Der Fehler besagt, dass Sie eine Nullobjektverweis haben. Überprüfen Sie das Objekt, das das Problem generiert, und die Überwachung wird korrekt instanziiert.

Beispiel

//this object is null 

Object some 

Mymethod(some) 

//this object is not null 

Object some = new Object() 

Mymethod(some) 
+0

Ja, das ist, wo das Problem auftritt . Wenn ich nur wüsste, wo das "Object some" war. Die Mono-Laufzeitumgebung zeigt mir keine hilfreiche Ausnahmespur. Ich habe sogar versucht fast meinen gesamten Code mit Versuch zu umgehen ... zu fangen - vergebens. – PiMaker

+0

versuchen, die Anwendung mit Breakpoint-Bedingung oder Aktionen im Fall der Aktion debuggen schreiben Sie eine Nachricht in der Konsole ... –

+0

Gleiches Problem wieder, wo setze ich den Haltepunkt/schreibe die Debug-Anweisung? – PiMaker

0

in der Option auf dem Roten Platz. Stellen Sie den Breakpoint/schreiben

Breakpoint/Write

java.lang.NullPointerException Ich verbinde dies bei Überlauffehler, wenn der Zeiger oder wenn Sie eine Liste zugreifen existiert nicht oder ist größer als die Anzahl von Knoten kann diese Fehlerprüfungen geben Das.