Странное исключение NullPointerException с объектом Date - PullRequest
0 голосов
/ 12 февраля 2011

У меня есть отчет о сбое от пользователя, который я сам не смог воссоздать ту же ошибку на моем тестовом устройстве.

Вот соответствующий код:

        for(File f : sessionDirectory.listFiles()){
        Date lastModDate = new Date(f.lastModified());
    /*Line 53*/ Session ss = new Session(lastModDate.toLocaleString() , f.getName()) ;
        sessionArrayList.add(ss ) ;
    }

и вот следы стека:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mydomain/com.mydomain.myActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
at android.app.ActivityThread.access$2300(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.mydomain.myActivity.onCreate(myActivity.java:53)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Я видел подобные вещи, когда согласовывал даты в / из строковых представлений в Java (не в Android), и долгое время не имел понятия, почему.Я не помню точных деталей, но это имело какое-то отношение к методу преобразования, не являющемуся поточно-ориентированным, что было странно, потому что (если я правильно помню) это произошло при вызове статического метода jdk.

Попробуйте, если это все еще происходит, когда вы извлекаете lastModDate.toLocaleString () в синхронизированный метод и используете экземпляр DateFormat.

В jdk уже был файл ошибки с этим, когда я искал его, ноон был отклонен.

(Возможно, toLocaleString использует DateFormat, присоединенный к текущей локали, который используется всеми потоками, и вызывает метод, не поддерживающий потоки.)

Однако это только предположение,но поскольку симптомы так же странны, просто попробуйте.

1 голос
/ 12 февраля 2011

Трассировка стека говорит:

Вызывается: java.lang.NullPointerException в com.mydomain.myActivity.onCreate (myActivity.java:53)

Что такоестрока 53?

sessionDirectory может быть null, а sessionDirectory.listFiles() может возвращать null - об этом также напоминает отчет о сбое пользователя: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...