2012-06-28 23 views
0

錯誤:不能趕上顯示java.lang.NullPointerException在Android

java.lang.NullPointerException 
    at com.lala.Home.hideLoadinganimation(Home.java:969) 
    at com.lala.Home.access$4(Home.java:967) 
    at com.lala.Home$17.onFinish(Home.java:892) 
    at com.loopj.android.http.AsyncHttpResponseHandler.handleMessage (AsyncHttpResponseHandler.java:180) 
    at com.loopj.android.http.AsyncHttpResponseHandler$1.handleMessage(AsyncHttpResponseHandler.java:86) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3687) 
    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:867) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
    at dalvik.system.NativeStart.main(Native Method) 

我知道爲什麼會發生,不知何故用戶隱藏/出口或去一些其他的應用程序,就像我的應用程序從服務器完成加載數據和即將隱藏進度對話框。

我想抓下面的塊,但它不工作。我錯過了什麼?

private void hideLoadinganimation(boolean asDialog) { 
    try { 
     if (asDialog) { 
      try { 
       pDialog.dismiss(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
       // again, sometimes pDialog is null. I have no idea why as I 
       // can't reproduce it. 
      } 
     } else { 
      switcher.showPrevious(); 
     } 
    } catch (Exception ee) { 
     ee.printStackTrace(); 
    } 
} 
+0

是您在不同線程中的hideLoadinganimation方法嗎? – Noby

+0

你提供的堆棧跟蹤來自哪裏?它是否在日誌文件中?如果是這樣,哪一個? –

+1

這是行Home.java:969然後我們可以建議任何東西..... –

回答

1

我認爲你的pDialog爲空。

嘗試

if(null!=pDialog && pDialog.isshowing()){ 

     pDialog.dismiss(); 

} 
+0

這是處理它的正確方法(更快,更安全,更清潔)。然而,我很好奇爲什麼嘗試抓住了,儘管它是一個全面的應用程序崩潰的應用程序。 – DeeV

1

變化

pDialog.dismiss(); 

if(pDialog!=null) 
{ 
    pDialog.dismiss(); 
} 

但你需要弄清楚它爲什麼越來越空

0

Dheeresh辛格的評論後,我去檢查了並注意到錯誤日誌來自舊版本的應用程序。雖然我強迫用戶在有新版本時進行更新,但幾位用戶卻有些繞過它。麻煩抱歉。

我應該花更多時間在上面查看詳情。

相關問題