2012-07-04 119 views
0

我需要下面的崩潰報告幫助。奇怪的是,我測試過的所有設備都不會產生這個錯誤。但是我的崩潰報告在兩週內顯示了其中的60個。顯而易見的是,它或者僅限於特定的品牌和設備型號或操作系統版本。我的應用程序在2.2以上的所有版本中都處於活動狀態,因此我正在修復以確定實際問題。日誌報告沒有給我足夠的信息來進行研究。 應用程序是活的和超過2500個安裝」與運行75%活性安裝那與指示該問題不限於少數用戶的任何幫助感激Calendar.setTime() - 空指針異常:Android

**背景:1)應用程序顯示的計顯示'Days','Hours','Min'和'Sec'

2)報告了非常類似的錯誤很少用戶在不同的日程安排屏幕上。

java.lang.RuntimeException:無法啓動活動 ComponentInfo {alfi.programs.olympics2012/alfi.programs.olympics2012.OlympicsMainScreen}:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1997) 顯示java.lang.NullPointerException 在 android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2018) at android.app.ActivityThread.access $ 500(ActivityThread.java:139)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1124) at android.os.Handler。 dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:152)at android.app.ActivityThread.main(ActivityThread.java:4636)at java.lang.reflect.Method。 invokeNative(Native Method),地址爲 java.lang.reflect.Method.invoke(Method.java:491)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:841) at com.android.internal.os.ZygoteInit .main(ZygoteInit.java:599)at dalvik.system.NativeStart.main(Native Method)引起: java.lang.NullPointerException在 java.util.Calendar.setTime(Calendar.java:1325)at java .text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:536)at java.text.SimpleDateFormat.format(SimpleDateFormat.java:818)at java.text.DateFormat.format(DateFormat.java:376)at alfi.programs .olympics2012.OlympicsMainScreen.getLocalTimeCountDown(OlympicsMainScreen.java:393) at alfi.programs.olympic s2012.OlympicsMainScreen.countDownTime(OlympicsMainScreen.java:284) 在 alfi.programs.olympics2012.OlympicsMainScreen.onCreate(OlympicsMainScreen.java:55) 在android.app.Activity.performCreate(Activity.java:4521)在 機器人.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1961) ...... 11多個

private String getLocalTimeCountDown(Object date, Object time){ 

     String time1 = time.toString(); 
     String timeStart = time1.substring(0, 5); 

     String fromDateString = date.toString() + "/" + timeStart + " GMT+01:00"; 

      DateFormat formatter = new SimpleDateFormat("dd MMM/HH:mm zzz"); 

      Date fromDate = null; 
      try { 
       fromDate = (Date)formatter.parse(fromDateString); 
      } catch (ParseException e) { 
       Toast.makeText(getApplicationContext(), "Oops.. there seems to be some problem... Report" + 
         " this immediately using the feedback link from the Main Screen.", 500).show(); 
      } 
      TimeZone central = TimeZone.getDefault(); 
      formatter.setTimeZone(central); 

      return formatter.format(fromDate); 
    } 
+1

什麼是OlympicsMainScreen.java在393行的外觀? –

+0

你可以請張貼你的代碼,以便我們可以看到它爲什麼會給出異常?看起來你的SimpleDateFormat可能有問題。 – Swayam

+0

Jon&Swayam,我上面更新了我的代碼。在此先感謝您的關注。 – Alfred

回答

0

好了,我懷疑問題是有ParseException - 你已經發現並且完全忽略。這是fromDate爲空,所以當你然後打電話給formatter.format(fromDate)你傳遞給它一個空引用,你不打算這樣做。

你應該差不多從來沒有有一個像這樣的空catch塊。 想要做什麼,如果文本無法正確解析?

+0

Jon之後能夠很快的解決它,我真的有Toast消息。在發佈時忽略它。但不知道Toast會幫助我。任何想法,我應該怎樣捕捉ParseException並對Date做什麼。由於它在我的設備上解析得很好,我已經手動測試了1100個事件。它不會崩潰。是什麼讓它幾乎崩潰? – Alfred

+0

我更新了我的代碼,請檢查。 – Alfred

+0

如果日期不解析,我沒有其他選擇,我有一種感覺,這與設備時區有關,這是代碼控制之外的唯一數據。 – Alfred