0

我需要以下崩溃报告的帮助。奇怪的是,我测试过的所有设备都不会产生这个错误。但我的崩溃报告在 2 周内显示了其中大约 60 个。很明显,它要么仅限于特定的品牌和设备型号,要么仅限于操作系统版本。我的应用程序在 2.2 以上的所有版本上都处于活动状态,因此我正在修复以确定实际问题。日志报告没有给我足够的信息来研究。应用程序已上线并运行,安装次数超过 2500 次,其中 75% 处于活动状态,这表明问题仅限于少数用户。非常感谢任何帮助。

**背景:1)应用程序显示特定事件的倒计时时间,采用静态时间将其转换为本地时区并计算差异。显示“天”、“小时”、“分钟”和“秒”

2) 少数用户在不同的日程安排屏幕上报告了一个非常相似的错误。

java.lang.RuntimeException:无法在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1997) 上启动活动 ComponentInfo{alfi.programs.olympics2012/alfi.programs.olympics2012.OlympicsMainScreen}:java.lang.NullPointerException。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:2018) 在android.app.ActivityThread.access$500(ActivityThread.java:139) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1124) 在android.os。 Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:152) 在 android.app.ActivityThread.main(ActivityThread.java:4636) 在 java.lang.reflect.Method.invokeNative (本机方法)在 java.lang.reflect.Method.invoke(Method.java:491) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 在 com.android。internal.os.ZygoteInit.main(ZygoteInit.java:599) at dalvik.system.NativeStart.main(Native Method) 引起:java.lang.NullPointerException at java.util.Calendar.setTime(Calendar.java:1325) at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:536) 在 java.text.SimpleDateFormat.format(SimpleDateFormat.java:818) 在 java.text.DateFormat.format(DateFormat.java:376) 在 alfi.programs.olympics2012 .OlympicsMainScreen.getLocalTimeCountDown(OlympicsMainScreen.java:393) 在 alfi.programs.olympics2012.OlympicsMainScreen.countDownTime(OlympicsMainScreen.java:284) 在 alfi.programs.olympics2012.OlympicsMainScreen.onCreate(OlympicsMainScreen.java:55) 在 android.app。 Activity.performCreate(Activity.java:4521) 在 android.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);
     }
4

1 回答 1

0

好吧,我怀疑问题是有一个ParseException- 你已经抓住并完全忽略了。将其保留fromDate为 null,因此当您调用它时formatter.format(fromDate),您将传递给它一个 null 引用,而您不应该这样做。

你几乎应该有这样的空 catch 块。如果无法正确解析文本,您想做什么?

于 2012-07-04T19:27:23.623 回答