App crash on Android 12 due to expo-clipboard?

While testing on App on Android 12 (Both Dev-client & Standalone) app crashes immediately after the launch without any exception log in expo debug log. However, I was managed to get the native error log with Android studio as below

2022-10-24 19:53:45.356 23312-23312/<package-name> E/AndroidRuntime: FATAL EXCEPTION: main
    Process: <package-name>, PID: 23312
    java.lang.NullPointerException: Attempt to invoke virtual method 'expo.modules.kotlin.ModuleHolder expo.modules.kotlin.ModuleRegistry.getModuleHolder(expo.modules.kotlin.modules.Module)' on a null object reference
        at expo.modules.kotlin.AppContext.eventEmitter(AppContext.kt:130)
        at expo.modules.kotlin.modules.Module$moduleEventEmitter$2.invoke(Module.kt:13)
        at expo.modules.kotlin.modules.Module$moduleEventEmitter$2.invoke(Module.kt:13)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at expo.modules.kotlin.modules.Module.getModuleEventEmitter(Module.kt:13)
        at expo.modules.kotlin.modules.Module.sendEvent(Module.kt:24)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter.listener$lambda-7(ClipboardModule.kt:185)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter.$r8$lambda$FOcG-I7941H4UsJXOpcE8zMe3jo(Unknown Source:0)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter$$ExternalSyntheticLambda0.onPrimaryClipChanged(Unknown Source:4)
        at android.content.ClipboardManager.reportPrimaryClipChanged(ClipboardManager.java:319)
        at android.content.ClipboardManager$1.lambda$dispatchPrimaryClipChanged$0$ClipboardManager$1(ClipboardManager.java:85)
        at android.content.ClipboardManager$1$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at android.os.Handler.handleCallback(Handler.java:938)
        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:7839)
        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:1003)
2022-10-24 19:53:45.367 23312-23312/<package-name> E/DevLauncher: DevLauncher tries to handle uncaught exception.
    java.lang.NullPointerException: Attempt to invoke virtual method 'expo.modules.kotlin.ModuleHolder expo.modules.kotlin.ModuleRegistry.getModuleHolder(expo.modules.kotlin.modules.Module)' on a null object reference
        at expo.modules.kotlin.AppContext.eventEmitter(AppContext.kt:130)
        at expo.modules.kotlin.modules.Module$moduleEventEmitter$2.invoke(Module.kt:13)
        at expo.modules.kotlin.modules.Module$moduleEventEmitter$2.invoke(Module.kt:13)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at expo.modules.kotlin.modules.Module.getModuleEventEmitter(Module.kt:13)
        at expo.modules.kotlin.modules.Module.sendEvent(Module.kt:24)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter.listener$lambda-7(ClipboardModule.kt:185)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter.$r8$lambda$FOcG-I7941H4UsJXOpcE8zMe3jo(Unknown Source:0)
        at expo.modules.clipboard.ClipboardModule$ClipboardEventEmitter$$ExternalSyntheticLambda0.onPrimaryClipChanged(Unknown Source:4)
        at android.content.ClipboardManager.reportPrimaryClipChanged(ClipboardManager.java:319)
        at android.content.ClipboardManager$1.lambda$dispatchPrimaryClipChanged$0$ClipboardManager$1(ClipboardManager.java:85)
        at android.content.ClipboardManager$1$$ExternalSyntheticLambda0.run(Unknown Source:2)
        at android.os.Handler.handleCallback(Handler.java:938)
        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:7839)
        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:1003)

Seems like the issue could be related with the expo-clipboard. Could you please help me to fix this issue?

Hi!

Could you compare your findings with this issue?

Namely, it appears others that have experienced this have primarily seen:

  • the app crash one time, and then work
  • that it’s happened mainly on Samsung devices
  • Switching to Hermes may fix it

If you’re able to make a minimal reproduction, that would be a great aid for helping us track down this issue.

Thank you!