expo: SDK 42: Immediate crash on clicking Scan QR Code button or choosing an entry from RECENTLY IN DEVELOPMENT

Summary

Yesterday I created a new app to try out react-native-navigation-bar-color (but it turns out that this issue occurs even without installing any dependencies other than expo-dev-client after expo init.)

I installed expo-dev-client and built with eas build --platform android --profile development --local

After installing it on my Samsung Galaxy S8 (Android 9) I opened it. Immediately on clicking the Scan QR Code button it crashes. It does not build/download the bundle before crashing.

After that I upgraded to SDK 43.0.0-beta.3 and built that. This worked perfectly.

I only tested on Android.

See also this forum thread

Managed or bare workflow? If you have made manual changes inside of the ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android

Package versions

expo-dev-client@0.6.2

Environment

% expo diagnostics

  Expo CLI 4.12.1 environment info:
    System:
      OS: macOS 11.6
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 16.10.0 - /opt/homebrew/bin/node
      Yarn: 1.22.15 - /opt/homebrew/bin/yarn
      npm: 7.24.1 - /opt/homebrew/bin/npm
    Managers:
      CocoaPods: 1.11.2 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: iOS 15.0, DriverKit 20.4, macOS 11.3, tvOS 15.0, watchOS 8.0
    IDEs:
      Android Studio: 2020.3 AI-203.7717.56.2031.7678000
      Xcode: 13.0/13A233 - /usr/bin/xcodebuild
    npmPackages:
      expo: ~42.0.1 => 42.0.4
      react: 16.13.1 => 16.13.1
      react-dom: 16.13.1 => 16.13.1
      react-native: https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2
      react-native-web: ~0.13.12 => 0.13.18
    Expo Workflow: managed

Reproducible demo or steps to reproduce from a blank project

% expo init sdk-42-dev-client-crash -t blank
[...]
% cd sdk-42-dev-client-crash
% yarn add expo-dev-client
[...]
✨  Done in 13.16s.
% git commit -am "Install expo-dev-client"
[main b312801] Install expo-dev-client
% eas build --platform android --profile development --local
βœ” This project is not configured to build with EAS. Set it up now? … yes

βœ” Generated eas.json

πŸ“  Android application id Learn more
βœ” What would you like your Android application id to be? … com.example.sdk42devclientcrash

βœ” Can we commit these changes to git for you? β€Ί Yes
βœ” Commit message: … Configure EAS Build for Android
βœ” Committed changes
βœ” Created @wodin/sdk-42-dev-client-crash on Expo
βœ” Using remote Android credentials (Expo server)
βœ” Generate a new Android Keystore? … yes
βœ” Created keystore
ANDROID_NDK_HOME environment variable was not specified, continuing build without NDK
[SETUP_WORKINGDIR] Preparing workingdir /var/folders/kj/rwm7htb51n18wlz4pbljb75w0000gn/T/eas-build-local-nodejs/58ac21f5-56f0-409f-9750-9b3568bc9d75
[START_BUILD] Starting build
[...]
[UPLOAD_ARTIFACTS] Build artifacts: /var/folders/kj/rwm7htb51n18wlz4pbljb75w0000gn/T/eas-build-local-nodejs/58ac21f5-56f0-409f-9750-9b3568bc9d75/build/android/app/build/outputs/apk/debug/app-debug.apk
[PREPARE_ARTIFACTS] Archiving artifacts
[PREPARE_ARTIFACTS] Writing artifacts to /private/tmp/sdk-42-dev-client-crash/build-6-9-2021-19:21.apk

Build successful
You can find the build artifacts in /private/tmp/sdk-42-dev-client-crash/build-6-9-2021-19:21.apk

Install the APK and open it. Click the β€œScan QR Code” button. (No need to run expo start --dev-client.)

Stacktrace (if a crash is involved)

10-15 17:55:11.490  4183  4299 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
10-15 17:55:11.490  4183  4299 E AndroidRuntime: Process: com.example.navbarcolour, PID: 4183
10-15 17:55:11.490  4183  4299 E AndroidRuntime: com.facebook.react.common.JavascriptException: TypeError: c.startOperationBatch is not a function. (In 'c.startOperationBatch()', 'c.startOperationBatch' is undefined), stack:
10-15 17:55:11.490  4183  4299 E AndroidRuntime: disableQueue@226:592
10-15 17:55:11.490  4183  4299 E AndroidRuntime: unsetWaitingForIdentifier@226:457
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@245:826
10-15 17:55:11.490  4183  4299 E AndroidRuntime: h@248:1507
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@248:1686
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@223:2411
10-15 17:55:11.490  4183  4299 E AndroidRuntime: s@232:1346
10-15 17:55:11.490  4183  4299 E AndroidRuntime: start@232:1397
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@219:2072
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@219:2141
10-15 17:55:11.490  4183  4299 E AndroidRuntime: onPressIn@219:1702
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@215:7927
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@215:7377
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@215:6970
10-15 17:55:11.490  4183  4299 E AndroidRuntime: onResponderGrant@215:4967
10-15 17:55:11.490  4183  4299 E AndroidRuntime: E@94:896
10-15 17:55:11.490  4183  4299 E AndroidRuntime: extractEvents@94:8888
10-15 17:55:11.490  4183  4299 E AndroidRuntime: <unknown>@94:13472
10-15 17:55:11.490  4183  4299 E AndroidRuntime: xe@94:92704
10-15 17:55:11.490  4183  4299 E AndroidRuntime: Re@94:12995
10-15 17:55:11.490  4183  4299 E AndroidRuntime: ze@94:13384
10-15 17:55:11.490  4183  4299 E AndroidRuntime: receiveTouches@94:14177
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@45:3492
10-15 17:55:11.490  4183  4299 E AndroidRuntime: <unknown>@45:747
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@45:2538
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@45:719
10-15 17:55:11.490  4183  4299 E AndroidRuntime: value@-1
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java:83)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:151)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:873)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)
10-15 17:55:11.490  4183  4299 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:764)

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 17 (8 by maintainers)

Most upvoted comments

Hey all – this should be fixed in expo-dev-client@0.6.3 which is out now. Thanks @wodin for the report and workaround!!

Thanks for the reports! We’re able to reproduce and will try to get it fixed shortly