2013-02-25 88 views
6

所以有錯誤,不斷想出了在與我有關的任何痕跡,這裏是一個樣本跟蹤:的NullPointerException在android.app.ActivityThread.handleStopActivity

java.lang.NullPointerException 
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:2484) 
at android.app.ActivityThread.access$1800(ActivityThread.java:117) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:948) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3695) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
at dalvik.system.NativeStart.main(Native Method) 

其他痕跡,只有類似線號變化:2484,2482和2476.

另外提到設備提及的3個報告:M865華爲Ascend II,它應該有2.3。

通過2.1源細算 - 4.1(我的應用程序minSdk是7)在給定的行號這些都是可能拋出的錯誤行:

2.3.7 - 線2472

2.3.6 - 行2472

private final void handleStopActivity(IBinder token, boolean show, int configChanges) { 
    ActivityClientRecord r = mActivities.get(token); 
    r.activity.mConfigChangeFlags |= configChanges; // line 2472 

    StopInfo info = new StopInfo(); 
    performStopActivityInner(r, info, show); 
    ... 

任何想法是什麼造成這種情況,以及如何防止它?

+0

我的上次更新有同樣的問題,對此有何更新? – 2013-03-12 17:07:32

+0

@MarioLenci我認爲這與低內存情況有關,應用程序進程必須在現場處理。你是否遇到過很多'OutOfMemory'異常? – 2013-03-13 00:48:51

+0

我沒有說太多,但是是的,我在舊手機上有一些OutOfMemory報告。我想我必須尋找漏洞。謝謝 – 2013-03-13 09:45:08

回答

-1

嗯,好像你的作業

ActivityClientRecord r = mActivities.get(token); 

可能會返回一個空值。之後,你會在

r.activity.mConfigChangeFlags |= configChanges; // line 2472 

要訪問一個空對象,因此,如果您通過之間

if (r==null) return; 

你不會得到錯誤驗證英寸

+0

這不是我的代碼,它來自Android 2.3.7版本的源代碼,所以我無法改變它。 – 2013-02-26 11:24:13

+0

是的,對不起。我沒有抓住那部分。我在這裏發現了一個類似的問題:http://www.jjoe64.com/2011/06/how-to-fix-activityperformstop.html但我不認爲這正是你所要求的。 – DigCamara 2013-02-26 16:31:36

相關問題