當清洗RAM的應用程序崩潰後,我有我的應用程序有問題。我在stackoverflow上搜索了一個解決方案,但我沒有找到一個解決方案。恢復Android應用(空指針異常)
我仍然在開發Android應用是初學者。我在上個星期自己創建了我的第一個應用程序。
的問題:當我啓動應用程序,一切工作正常。此外,當我啓動我的應用程序,進入菜單並立即恢復,但當我切換到菜單,清理我的記憶,然後重新啓動我的應用程序,似乎應用程序仍在運行,因爲它現在崩潰。當我啓動應用程序時,我有類似的效果,切換到其他應用程序,然後返回到我的應用程序。在這種情況下,該應用程序也崩潰。 那麼,爲什麼應用程序仍在運行,儘管我清理了我的內存?我應該用一些我不知道的基本代碼覆蓋onFinish() - 或onPause() - 方法嗎? 爲什麼應用程序崩潰,當我不使用它一段時間?
的logcat:
12-18 23:19:06.850: E/AndroidRuntime(25262): FATAL EXCEPTION: main
12-18 23:19:06.850: E/AndroidRuntime(25262): java.lang.NullPointerException
12-18 23:19:06.850: E/AndroidRuntime(25262): at de.dzapps.isoapp.IsoToleranzen.update(IsoToleranzen.java:1293)
12-18 23:19:06.850: E/AndroidRuntime(25262): at de.dzapps.isoapp.IsoToleranzen$4.onItemClick(IsoToleranzen.java:441)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.widget.AdapterView.performItemClick(AdapterView.java:298)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.widget.AbsListView.performItemClick(AbsListView.java:1283)
12-18 23:19:06.850: E/AndroidRuntime(25262): at de.dzapps.isoapp.IsoToleranzen$1.onGlobalLayout(IsoToleranzen.java:174)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:682)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1875)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1131)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4611)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.Choreographer.doFrame(Choreographer.java:525)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.os.Handler.handleCallback(Handler.java:615)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.os.Handler.dispatchMessage(Handler.java:92)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.os.Looper.loop(Looper.java:137)
12-18 23:19:06.850: E/AndroidRuntime(25262): at android.app.ActivityThread.main(ActivityThread.java:4898)
12-18 23:19:06.850: E/AndroidRuntime(25262): at java.lang.reflect.Method.invokeNative(Native Method)
12-18 23:19:06.850: E/AndroidRuntime(25262): at java.lang.reflect.Method.invoke(Method.java:511)
12-18 23:19:06.850: E/AndroidRuntime(25262): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
12-18 23:19:06.850: E/AndroidRuntime(25262): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
12-18 23:19:06.850: E/AndroidRuntime(25262): at dalvik.system.NativeStart.main(Native Method)
因爲我得到一個NullPointerException,看來,該系統將刪除變量... 但是當我雙擊第三行,蝕痕這一行:
int am_offset = list.getChildAt(0).getTop();
我無法解釋這種行爲,因爲我在這一行設置了一個斷點,系統在我恢復應用程序時從未調用過這個表達式。 list
是一個ListView。 如何防止系統刪除變量,然後在一段時間內不使用應用程序?
有人可以幫我嗎?
非常感謝!
你在哪裏以及如何初始化'list'?你期望'getChildAt(0)'返回什麼?那可能是空的? – ozbek
getChildAt應該拋出異常。 AdapterViews不能具有傳統意義上的子視圖。看起來這裏有兩個問題。一個包含Activity Lifecycle,另一個包含如何使用adapterview。 –
我在onCreate()中初始化'list'。用'getChildAt(0).getTop()'我想得到第一個可見的項目和它的px是不可見的。當我第一次啓動應用程序時,這很好。當我去菜單並立即恢復時,這也可以正常工作。但是,在恢復之前清理內存時,它不起作用。 – Daniel