0

以下のクラッシュ レポートについてサポートが必要です。奇妙なことに、私がテストしたすべてのデバイスでこのエラーが発生しません。しかし、私のクラッシュ レポートには、2 週間で約 60 件のクラッシュが記録されています。特定のメーカーやデバイス モデル、または OS バージョンに限定されていることは明らかです。私のアプリは 2.2 より上のすべてのバージョンでアクティブであるため、実際の問題を特定するために修正中です。ログ レポートでは、調査するのに十分な情報が得られません。これは、問題が少数のユーザーに限定されていることを示しています。どんな助けも大歓迎です。

**背景: 1) アプリは特定のイベントまでのカウント ダウン時間を表示し、静的な時間をローカル タイム ゾーンに変換して差を計算します。「日」、「時間」、「分」、「秒」を表示

2) ごく一部のユーザーから、別のスケジュール画面で非常によく似たエラーが報告されました。

java.lang.RuntimeException: アクティビティ ComponentInfo{alfi.programs.olympics2012/alfi.programs.olympics2012.OlympicsMainScreen} を開始できません: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1997) at android. 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 (ネイティブ メソッド) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) の java.lang.reflect.Method.invoke(Method.java:491) で 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) at alfi.programs.olympics2012.OlympicsMainScreen.countDownTime(OlympicsMainScreen.java:284) at 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 に答える