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

String message = chatList.get(position).getMessage();
        String timeStamp = chatList.get(position).getTimestamp();

        Calendar cal = Calendar.getInstance(Locale.ENGLISH);
        cal.setTimeInMillis(Long.parseLong(timeStamp));
        String dateTime = DateFormat.format("dd/MM/yyyy hh:mm aa", cal).toString();

        holder.messageTv.setText(message);
        holder.timeTv.setText(dateTime);

Это ошибка logcat, которую я получаю:

2020-09-02 22:10:08.411 13445-13445/com.x00122898.meetupproject E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.x00122898.meetupproject, PID: 13445
    java.lang.NumberFormatException: For input string: "null"
        at java.lang.Long.parseLong(Long.java:594)
        at java.lang.Long.parseLong(Long.java:636)
        at com.x00122898.meetupproject.ChatActivity$1.onDataChange(ChatActivity.java:107)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.0.4:75)
        at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.0.4:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.0.4:55)
        at android.os.Handler.handleCallback(Handler.java:888)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:213)
        at android.app.ActivityThread.main(ActivityThread.java:8178)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
2020-09-02 22:10:08.422 13445-13445/com.x00122898.meetupproject I/Process: Sending signal. PID: 13445 SIG: 9

Любая помощь будет принята с благодарностью ~

0
Kujinn 3 Сен 2020 в 00:17

2 ответа

Лучший ответ

Проблема в этих двух строках кода:

String timeStamp = chatList.get(position).getTimestamp();
cal.setTimeInMillis(Long.parseLong(timeStamp));

Ваша переменная timeStamp содержит строку / слово «null», и когда вы пытаетесь проанализировать ее как Long, она выдает исключение NumberFormatException. Вы должны перехватить исключение или проверить, содержит ли timeStamp числовое значение (см. Как проверить, является ли строка числовой в Java ).

Кроме того, возможно, метод getTimestamp () не возвращает правильную переменную, или метка времени никогда не сохранялась или не отправлялась.

0
gioramies 2 Сен 2020 в 21:37

Похоже, проблема возникает в строке 107 ChatActivity.java, где значение буквально равно "null". Посмотреть предыдущие ответы numberformatexception-for-input-string-null

0
mco 2 Сен 2020 в 21:44