square/reader-sdk-android-quickstart

Reader SDK crashes on target SDK 34

Opened this issue · 3 comments

With target SDK 34 app crashes with following error

E/AndroidRuntime(10400): java.lang.RuntimeException: Unable to resume activity {com.example.example/com.squareup.ui.main.ApiMainActivity}: java.lang.SecurityException: com.example.example: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
E/AndroidRuntime(10400): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4962)
E/AndroidRuntime(10400): 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4995)
E/AndroidRuntime(10400): 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
E/AndroidRuntime(10400): 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
E/AndroidRuntime(10400): 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
E/AndroidRuntime(10400): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
E/AndroidRuntime(10400): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
E/AndroidRuntime(10400): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(10400): 	at android.os.Looper.loopOnce(Looper.java:205)
E/AndroidRuntime(10400): 	at android.os.Looper.loop(Looper.java:294)
E/AndroidRuntime(10400): 	at android.app.ActivityThread.main(ActivityThread.java:8177)
E/AndroidRuntime(10400): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10400): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
E/AndroidRuntime(10400): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
E/AndroidRuntime(10400): Caused by: java.lang.SecurityException: com.example.example: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
E/AndroidRuntime(10400): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
E/AndroidRuntime(10400): 	at android.os.Parcel.createException(Parcel.java:3041)
E/AndroidRuntime(10400): 	at android.os.Parcel.readException(Parcel.java:3024)
E/AndroidRuntime(10400): 	at android.os.Parcel.readException(Parcel.java:2966)
E/AndroidRuntime(10400): 	at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5684)
E/AndroidRuntime(10400): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10400): 	at shadow.leakcanary.ServiceWatcher$install$4$2.invoke(ServiceWatcher.kt:93)
E/AndroidRuntime(10400): 	at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
E/AndroidRuntime(10400): 	at $Proxy4.registerReceiverWithFeature(Unknown Source)
E/AndroidRuntime(10400): 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1852)
E/AndroidRuntime(10400): 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792)
E/AndroidRuntime(10400): 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1780)
E/AndroidRuntime(10400): 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755)
E/AndroidRuntime(10400): 	at com.squareup.ui.MediaButtonDisabler.onResume(MediaButtonDisabler.java:38)
E/AndroidRuntime(10400): 	at com.squareup.ui.SquareActivity.onResume(SquareActivity.java:470)
E/AndroidRuntime(10400): 	at com.squareup.ui.main.MainActivity.onResume(MainActivity.java:205)
E/AndroidRuntime(10400): 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1603)
E/AndroidRuntime(10400): 	at android.app.Activity.performResume(Activity.java:8743)
E/AndroidRuntime(10400): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4952)
E/AndroidRuntime(10400): 	... 13 more
E/AndroidRuntime(10400): Caused by: android.os.RemoteException: Remote stack trace:
E/AndroidRuntime(10400): 	at com.android.server.am.ActivityManagerService.registerReceiverWithFeature(ActivityManagerService.java:13927)
E/AndroidRuntime(10400): 	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2570)
E/AndroidRuntime(10400): 	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2720)
E/AndroidRuntime(10400): 	at android.os.Binder.execTransactInternal(Binder.java:1339)
E/AndroidRuntime(10400): 	at android.os.Binder.execTransact(Binder.java:1275)

any update on this?

We've noticed this issue as well. On the one hand, Square does document here the pre-req that "Your application targetSdkVersion is API 33 (Android 13) or earlier." On the other, we've had to downgrade not only our targetSdkVersion from 34 to 33 but some dependencies as well to make things with Square work. Hopefully Square supports API level 34 soon especially with Android 15 coming later this year.

Same Issue Facing.. I can't downgrade my other libraries version in order to compile with SDK 33 only. SQUARE have to upgrade the library as per the new SDK versions. My Current targetSdkVersion version is 34 and my all other implemented libraries are updated according to the SDK 34.