braintree / braintree_android

Braintree SDK for Android
https://developer.paypal.com/braintree/docs/start/hello-client/android/v4
MIT License
409 stars 234 forks source link

Android 14 Crash with Cardinal SDK - Caused by: java.lang.SecurityException: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified #774

Closed bm185178 closed 1 year ago

bm185178 commented 1 year ago

Braintree SDK Version

4.37.0

Environment

Sandbox

Android Version & Device

Google UpsideDownCakeSandbox - Android 14

Braintree dependencies

implementation 'com.braintreepayments.api:drop-in:6.11.0' implementation 'com.braintreepayments.api:card:4.37.0'

Describe the bug

FATAL EXCEPTION: main 08-23 10:07:38.347 7586 7586 E AndroidRuntime: Process: PID: 7586 08-23 10:07:38.347 7586 7586 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cardinalcommerce.a.setTextSelectHandleRight}: java.lang.SecurityException: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:205) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Looper.loop(Looper.java:294) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8176) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: Caused by: java.lang.SecurityException: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3057) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3041) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3024) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2966) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5684) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1852) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1780) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at com.cardinalcommerce.a.setTextSelectHandleRight.onCreate(:119) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8595) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:8573) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3764) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: ... 12 more 08-23 10:07:38.347 7586 7586 E AndroidRuntime: Caused by: android.os.RemoteException: Remote stack trace: 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at com.android.server.am.ActivityManagerService.registerReceiverWithFeature(ActivityManagerService.java:13908) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2570) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2720) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1339) 08-23 10:07:38.347 7586 7586 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:1275)

To reproduce

Open up braintree dropin UI

Expected behavior

Should not crash the app

Screenshots

No response

sarahkoop commented 1 year ago

Hi @bm185178 - Thanks for using the Braintree Android SDK. We've reached out to Cardinal about this issue and will post an update here when we have more information.

sarahkoop commented 1 year ago

The latest Cardinal SDK version supports Android 14 and has been updated in Braintree Android 4.38.1 - please upgrade to resolve this issue!