2012-04-06 10 views
0

Ich habe eine Aktivität, die einen Remote-Server-Aufruf und versucht, eine Liste aufzufüllen. Der Aufruf an den Server funktioniert einwandfrei und der Aufruf gibt JSON zurück, was gut ist.Android - Ausnahme von einem AsynchTask-Aufruf

Aber dann wirft das System diese Ausnahme:

04-06 18:43:19.626: D/AndroidRuntime(2564): Shutting down VM 
04-06 18:43:19.626: W/dalvikvm(2564): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 
04-06 18:43:19.686: E/AndroidRuntime(2564): FATAL EXCEPTION: main 
04-06 18:43:19.686: E/AndroidRuntime(2564): java.lang.NullPointerException 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.AbsListView.obtainView(AbsListView.java:2033) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1244) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.ListView.onMeasure(ListView.java:1155) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.View.measure(View.java:12723) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.View.measure(View.java:12723) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.View.measure(View.java:12723) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:812) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.View.measure(View.java:12723) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.View.measure(View.java:12723) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.os.Looper.loop(Looper.java:137) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-06 18:43:19.686: E/AndroidRuntime(2564):  at dalvik.system.NativeStart.main(Native Method) 

Warum sollte dies geschehen? Es weist nicht auf irgendeinen Code hin, also ist es ein bisschen seltsam.

Die protected void onPostExecute(String result) wird niemals beim Rückruf aufgerufen.

Danke!

+0

auf welchem ​​Gerät testen Sie diesen Code? –

+0

@imrankhan Ich teste auf einem Emulator. Ich habe andere Orte, wo ich die gleiche Operation mache und der Simulator behandelt es ohne Probleme. In diesem Fall passiert etwas Seltsames. – GeekedOut

+0

Zeigen Sie uns, was Sie in 'doInBackground()' tun, wenn der Code nicht bis zum Ende ausgeführt wird (was vermutlich der Fall ist, weil Sie 'onPostExecute' nicht aufgerufen haben) – 207

Antwort

2

Sie sollten Ihre AsyncTask für uns veröffentlichen, um das vollständige Bild zu erhalten, aber aus dem Protokoll würde ich sagen, dass Sie versuchen, eine Ansicht in doInBackground() aufzublasen. UI-Interaktion ist nur zulässig onPostExecute(). Wenn dies nicht der Fall ist, poste bitte deinen Code.