kotlin 空对象引用上的Android com.google.android.material.datepicker.MaterialCalendar.getCurrentMonth()'

wwwo4jvm  于 2023-08-06  发布在  Kotlin
关注(0)|答案(1)|浏览(157)

我的Android应用crashlytics已记录此错误:

  1. androidx.fragment.app.Fragment.performSaveInstanceState
  2. Fragment.java, line 3292
  3. java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.material.datepicker.Month com.google.android.material.datepicker.MaterialCalendar.getCurrentMonth()' on a null object
  4. reference
  5. com.google.android.material.datepicker.MaterialDatePicker.onSaveInstanceState MaterialDatePicker.java:154
  6. androidx.fragment.app.Fragment.performSaveInstanceState Fragment.java:3292
  7. androidx.fragment.app.FragmentStateManager.saveBasicState FragmentStateManager.java:681
  8. androidx.fragment.app.FragmentStateManager.saveState FragmentStateManager.java:647
  9. androidx.fragment.app.FragmentStore.saveActiveFragments FragmentStore.java:214
  10. androidx.fragment.app.FragmentManager.saveAllStateInternal FragmentManager.java:2371
  11. androidx.fragment.app.Fragment.performSaveInstanceState Fragment.java:3294
  12. androidx.fragment.app.FragmentStateManager.saveBasicState FragmentStateManager.java:681
  13. androidx.fragment.app.FragmentStateManager.saveState FragmentStateManager.java:647
  14. androidx.fragment.app.FragmentStore.saveActiveFragments FragmentStore.java:214
  15. androidx.fragment.app.FragmentManager.saveAllStateInternal FragmentManager.java:2371
  16. androidx.fragment.app.Fragment.performSaveInstanceState Fragment.java:3294
  17. androidx.fragment.app.FragmentStateManager.saveBasicState FragmentStateManager.java:681
  18. androidx.fragment.app.FragmentStateManager.saveState FragmentStateManager.java:647
  19. androidx.fragment.app.FragmentStore.saveActiveFragments FragmentStore.java:214
  20. androidx.fragment.app.FragmentManager.saveAllStateInternal FragmentManager.java:2371

字符串
这种情况并不总是发生,但大多数受影响的操作系统是在11,12和13,大多数是在三星Galaxy设备
我目前正在使用

  1. implementation 'com.google.android.material:material:1.4.0'


你知不知道该怎么避免这种事?

axr492tv

axr492tv1#

你可以使用材料库获取当前月份使用以下代码。

  1. fun Calendar.getCurrentMonth(): Pair<String, String> {
  2. // add -1 month to current month
  3. add(Calendar.MONTH, 0)
  4. // set DATE to 1, so first date of previous month
  5. this[Calendar.DATE] = 1
  6. val firstDateOfPreviousMonth = time
  7. // set actual maximum date of previous month
  8. this[Calendar.DATE] = getActualMaximum(Calendar.DAY_OF_MONTH)
  9. //read it
  10. val lastDateOfPreviousMonth = time
  11. return Pair(
  12. firstDateOfPreviousMonth.format("yyyy-MM-dd"),
  13. lastDateOfPreviousMonth.format("yyyy-MM-dd")
  14. )
  15. }

字符串

展开查看全部

相关问题