Dispositivi Motorola: org.threeten.bp.DateTimeException quando si analizza una data in ThreeTen

Ho un comportmento molto strano su alcuni dispositivi Motorola where LocalDateTime.now() restituisce 0000-00-00T00:00:00.0 con ThreeTenABP .

Il codice è il seguente:

  • L'audio HTML5 non è in esecuzione in App PhoneGap (Possibile usare il supporto?)
  • Come convertire un LatLng e un raggio in un LatLngBounds in Android Google Maps API v2?
  • Come trovare l'elenco di visualizzazioni con un determinato tag (attributo)
  • leggere i messaggi whatsapp
  • Gli elementi di AlertDialog non vengono visualizzati
  • Come mettere le mie librerie davanti a android.jar modificando build.gradle in Android-Studio
  •  @Override protected void onResume() { super.onResume(); if (!TextUtils.isEmpty(timeout)) { LocalDateTime savedTime = LocalDateTime.parse(timeout, DateTimeFormatter.ISO_DATE_TIME); if (LocalDateTime.now().isAfter(savedTime)) { refresh() } } } @Override protected void onPause() { super.onPause(); LocalDateTime currentTime = LocalDateTime.now().plus(Duration.ofMinutes(10)); timeout = currentTime.format(DateTimeFormatter.ISO_DATE_TIME); } 

    Solo su questi dispositivi (solo 3 dispositivi Motorola in esecuzione 6.0):

    Ho questo incidente:

     Fatal Exception: java.lang.RuntimeException: Unable to resume activity {com.myapp/com.myapp.MainActivity}: org.threeten.bp.format.DateTimeParseException: Text '0000-00-00T00:00:00.8' could not be parsed: Invalid value for MonthOfYear (valid values 1 - 12): 0 at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3121) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Caused by org.threeten.bp.format.DateTimeParseException: Text '0000-00-00T00:00:00.8' could not be parsed: Invalid value for MonthOfYear (valid values 1 - 12): 0 at org.threeten.bp.format.DateTimeFormatter.createError(DateTimeFormatter.java:1559) at org.threeten.bp.format.DateTimeFormatter.parse(DateTimeFormatter.java:1496) at org.threeten.bp.LocalDateTime.parse(LocalDateTime.java:444) at com.myapp.MainActivity.onResume(MainActivity.java:273) at android.app.Activity.performResume(Activity.java:6344) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3110) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Caused by org.threeten.bp.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0 at org.threeten.bp.temporal.ValueRange.checkValidValue(ValueRange.java:278) at org.threeten.bp.temporal.ChronoField.checkValidValue(ChronoField.java:557) at org.threeten.bp.LocalDate.of(LocalDate.java:237) at org.threeten.bp.chrono.IsoChronology.resolveDate(IsoChronology.java:452) at org.threeten.bp.format.DateTimeBuilder.mergeDate(DateTimeBuilder.java:297) at org.threeten.bp.format.DateTimeBuilder.resolve(DateTimeBuilder.java:206) at org.threeten.bp.format.DateTimeFormatter.parse(DateTimeFormatter.java:1491) at org.threeten.bp.LocalDateTime.parse(LocalDateTime.java:444) at com.myapp.MainActivity.onPostResume(MainActivity.java:273) at android.app.Activity.performResume(Activity.java:6344) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3110) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 

    La linea 273 è:

     LocalDateTime savedTime = LocalDateTime.parse(timeout, DateTimeFormatter.ISO_DATE_TIME); 

    Quindi fondamentalmente LocaleDateTime.now() restituisce una data di data non valida e l'analisi non riesce.

    L'altra cosa interessante è che è accaduto solo dall'inizio di gennaio. Chiunque abbia mai affrontato quel problema?

  • Come visualizzare i dati memorizzati SharedPreference in Frammento?
  • Come controllare la disponibilità della telefonia e della camera per la versione SDK <5
  • Devo utilizzare AppCompat v7 se il minsdk è 14
  • Accedi a BLOB grande in Android Sqlite senza cursore
  • Come impostare il colore di background dell'indicatore della scheda Visualizza in Android
  • Ho una casella di controllo multipla ma voglio salvare solo il valore di una singola casella di controllo in attività
  • L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.