Skip to content

design: 'material' causes app to crash #984

@nick-michael

Description

@nick-michael

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions