react-native-modal-datetime-picker
react-native-modal-datetime-picker copied to clipboard
crash in android while making modal visible
Environment
System: OS: macOS 12.5 CPU: (10) arm64 Apple M1 Max Memory: 113.77 MB / 32.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.17.0 - ~/.nvm/versions/node/v16.17.0/bin/node Yarn: Not Found npm: 8.19.1 - ~/.nvm/versions/node/v16.17.0/bin/npm Watchman: 2022.09.05.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.11.3 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5 Android SDK: Not Found IDEs: Android Studio: 2021.2 AI-212.5712.43.2112.8815526 Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild Languages: Java: 11.0.16.1 - /usr/bin/javac npmPackages: @react-native-community/cli: ^7.0.3 => 7.0.4 react: 17.0.2 => 17.0.2 react-native: 0.67.4 => 0.67.4 react-native-macos: Not Found npmGlobalPackages: react-native: Not Found
Platforms
Android
Versions
"react-native-modal-datetime-picker": "^14.0.0", "@react-native-community/datetimepicker": "^6.1.3",
- Android:
- iOS:
- react-native-modal-datetime-picker:
- react-native-community/datetimepicker:
- react-native:
- react:
Description
Date picker modal is showing in ios but not in android n when i try to trigger it get's the app crash
including the logcat from android studio:
2022-09-12 14:45:41.583 370-370/? E/[email protected]: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:378 failure: Result::NOT_SUPPORTED 2022-09-12 14:45:41.602 10741-10741/com.trmc.webjams E/AndroidRuntime: FATAL EXCEPTION: main Process: com.trmc.webjams, PID: 10741 java.lang.IllegalArgumentException: No enum constant com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.INLINE at java.lang.Enum.valueOf(Enum.java:259) at com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.valueOf(RNDatePickerDisplay.java:13) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.getDialog(RNDatePickerDialogFragment.java:67) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.createDialog(RNDatePickerDialogFragment.java:104) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.onCreateDialog(RNDatePickerDialogFragment.java:44) at androidx.fragment.app.DialogFragment.prepareDialog(DialogFragment.java:647) at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:561) at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1698) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:492) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701) at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 2022-09-12 14:45:42.744 370-370/? E/[email protected]: device/generic/goldfish/audio/stream_out.cpp:updateSourceMetadata:378 failure: Result::NOT_SUPPORTED 2022-09-12 14:45:45.612 10741-10741/com.trmc.webjams E/JitsiMeetSDK: JitsiMeetUncaughtExceptionHandler FATAL ERROR java.lang.IllegalArgumentException: No enum constant com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.INLINE at java.lang.Enum.valueOf(Enum.java:259) at com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.valueOf(RNDatePickerDisplay.java:13) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.getDialog(RNDatePickerDialogFragment.java:67) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.createDialog(RNDatePickerDialogFragment.java:104) at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.onCreateDialog(RNDatePickerDialogFragment.java:44) at androidx.fragment.app.DialogFragment.prepareDialog(DialogFragment.java:647) at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:561) at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1698) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:492) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701) at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
java.lang.IllegalArgumentException: No enum constant com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.INLINE
at java.lang.Enum.valueOf(Enum.java:259)
at com.reactcommunity.rndatetimepicker.RNDatePickerDisplay.valueOf(RNDatePickerDisplay.java:13)
at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.getDialog(RNDatePickerDialogFragment.java:67)
at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.createDialog(RNDatePickerDialogFragment.java:104)
at com.reactcommunity.rndatetimepicker.RNDatePickerDialogFragment.onCreateDialog(RNDatePickerDialogFragment.java:44)
at androidx.fragment.app.DialogFragment.prepareDialog(DialogFragment.java:647)
at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:561)
at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1698)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:492)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
--------- beginning of system
2022-09-12 14:45:45.738 407-407/? E/ClientCache: failed to get buffer, invalid process token 2022-09-12 14:45:45.903 407-407/? E/ClientCache: failed to get buffer, invalid process token 2022-09-12 14:45:45.903 407-407/? E/BpTransactionCompletedListener: Failed to transact (-32) 2022-09-12 14:45:45.920 407-407/? E/BpTransactionCompletedListener: Failed to transact (-32)
Reproducible Demo
I am also experiencing the same Android force close app behavior upon attempting to open the date time picker modal. I'm new to React Native and have only encountered it on my small reminder app personal project I built utilizing Expo for learning purposes. Let me know if there's anything I can do from my end to assist.
@vivekMss it's impossible for anyone to appropriately help you because you haven't included a copy of your code.
I was having this issue and, in my case, it seems to be because I had display="inline" which is only supported by iOS. My solution:
<DateTimePickerModal
isVisible={showPicker}
mode="date"
display={Platform.select({
ios: 'inline',
android: 'calendar',
})}
onConfirm={onConfirm}
onCancel={onCancelPicker}
date={initialDate}
/>
@justicepelteir it looks like the cause of your issue is because you're using display='inline', which is only supported by iOS. See my fix, above. Platform is imported from the react-native module.
display={Platform.select({ ios: 'inline', android: 'calendar', })}
It fix my problem, thank you !
Thanks @jgillick for the help and support :)