react-native-sms-user-consent icon indicating copy to clipboard operation
react-native-sms-user-consent copied to clipboard

Fix crash on API 33

Open v-kryuchkov opened this issue 7 months ago • 0 comments

Crash reproduced on: OnePlus 9RT 12/256 Android 13

Stack Trace: java.lang.IllegalArgumentException: Receiver not registered: com.akvelon.reactnativesmsuserconsent.SmsBroadcastReceiver@c6d2cc7 at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1709) at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1846) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:822) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:822) at com.akvelon.reactnativesmsuserconsent.ReactNativeSmsUserConsentModule.unsubscribe(ReactNativeSmsUserConsentModule.java:89) at com.akvelon.reactnativesmsuserconsent.ReactNativeSmsUserConsentModule.stopNativeSmsListener(ReactNativeSmsUserConsentModule.java:157) at java.lang.reflect.Method.invoke(Method.java) at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:149) at com.facebook.jni.NativeRunnable.run(NativeRunnable.java) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29) at android.os.Looper.loopOnce(Looper.java:211) at android.os.Looper.loop(Looper.java:300) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:234) at java.lang.Thread.run(Thread.java:1012)

About fix:

  • The documentation states that flags is accepted from the SDK version UPSIDE_DOWN_CAKE, for TIRAMISU it's not valid argument: https://developer.android.com/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20java.lang.String,%20android.os.Handler,%20int)

Tested on devices after change:

  • OnePlus 9RT (Android 13)
  • Google Pixel 4a 5g (Android 14)
  • POCO C51 (Android 13)
  • Honor 8a (Android 9)
  • Xiaomi Mi 9T (Android 10)

v-kryuchkov avatar Jul 12 '24 10:07 v-kryuchkov