datetimepicker icon indicating copy to clipboard operation
datetimepicker copied to clipboard

design: 'material' causes app to crash

Open nick-michael opened this issue 5 months ago • 0 comments

Bug report

Summary

Setting the design property to material causes the app to crash upon opening the date picker. Using Expo v53, datetimepicker v8.4.1 Included the @react-native-community/datetimepicker plugin both with no config and with some basic theming which works for the default picker. Running on an Expo development build.

Crash details:

java.lang.IllegalArgumentException: com.google.android.material.datepicker.MaterialDatePicker requires a value for the {bundle-identifier}:attr/materialCalendarTheme attribute to be set in your app theme. You can either set the attribute in your theme or update your theme to inherit from Theme.MaterialComponents (or a descendant).
  com.google.android.material.resources.MaterialAttributes.resolveTypedValueOrThrow(MaterialAttributes.java:72)
  com.google.android.material.resources.MaterialAttributes.resolveOrThrow(MaterialAttributes.java:89)
  com.google.android.material.datepicker.SingleDateSelector.getDefaultThemeResId(SingleDateSelector.java:162)
  com.google.android.material.datepicker.MaterialDatePicker.getThemeResId(MaterialDatePicker.java:266)
  com.google.android.material.datepicker.MaterialDatePicker.onCreateDialog(MaterialDatePicker.java:272)
  androidx.fragment.app.DialogFragment.prepareDialog(DialogFragment.java:930)
  androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:844)
  androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1755)
  androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:527)
  androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:272)
  androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
  androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
  androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
  androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
  android.os.Handler.handleCallback(Handler.java:995)
  android.os.Handler.dispatchMessage(Handler.java:103)
  android.os.Looper.loopOnce(Looper.java:248)
  android.os.Looper.loop(Looper.java:338)
  android.app.ActivityThread.main(ActivityThread.java:9067)
  java.lang.reflect.Method.invoke(Native Method)
  com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)

Reproducible sample code

DateTimePickerAndroid.open({ value: dateToRender, onChange: handleDateChange, mode: 'date', design: 'material' });

Steps to reproduce

  1. Create an Expo dev build with an app that's using the datepicker library

  2. Set the datepicker to open programmatically, using DateTimePickerAndroid.open and provide the design: 'material' option

  3. Launch the app and open the datepicker

  4. npx react-native info output:

    info Fetching system and libraries information...
    System:
      OS: Windows 10 10.0.19045
      CPU: "(16) x64 AMD Ryzen 7 5800X 8-Core Processor             "
      Memory: 7.36 GB / 31.93 GB
    Binaries:
      Node:
        version: 24.1.0
        path: C:\nvm4w\nodejs\node.EXE
      Yarn: Not Found
      npm:
        version: 11.3.0
        path: C:\nvm4w\nodejs\npm.CMD
      Watchman: Not Found
    SDKs:
      Android SDK: Not Found
      Windows SDK: Not Found
    IDEs:
      Android Studio: Not Found
      Visual Studio: Not Found
    Languages:
      Java: Not Found
      Ruby: Not Found
    npmPackages:
      "@react-native-community/cli":
        installed: 18.0.0
        wanted: latest
      react:
        installed: 19.0.0
        wanted: 19.0.0
      react-native:
        installed: 0.79.3
        wanted: 0.79.3
      react-native-windows: Not Found
    npmGlobalPackages:
      "*react-native*": Not Found
    Android:
      hermesEnabled: Not found
      newArchEnabled: Not found
    iOS:
      hermesEnabled: Not found
      newArchEnabled: Not found
    

    Time zone name (If the problem you have is related to unexpected time / date. See list in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).

nick-michael avatar Jun 14 '25 19:06 nick-michael