expo / expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
https://docs.expo.dev
MIT License
32.58k stars 5.18k forks source link

expo camera startPreview failed #26924

Open deepakv-z14 opened 7 months ago

deepakv-z14 commented 7 months ago

Minimal reproducible example

https://snack.expo.dev/_WJCOZ_rUyYzJSnfQqrc3

Summary

Android app crashes in production with error Fatal Exception: java.lang.RuntimeException: startPreview failed Unfortunately this is happening randomly on Production environment only and we are not able tp reproduce it in local. Below is the stack trace.

# Crashlytics - Stack trace
# Platform: android

Fatal Exception: java.lang.RuntimeException: startPreview failed
       at android.hardware.Camera.startPreview(Camera.java)
       at com.google.android.cameraview.Camera1.startCameraPreview(Camera1.java:187)
       at com.google.android.cameraview.Camera1.adjustCameraParameters(Camera1.java:577)
       at com.google.android.cameraview.Camera1$1.onSurfaceChanged(Camera1.java:114)
       at com.google.android.cameraview.PreviewImpl.dispatchSurfaceChanged(PreviewImpl.java:56)
       at com.google.android.cameraview.TextureViewPreview$1.onSurfaceTextureSizeChanged(TextureViewPreview.java:52)
       at android.view.TextureView.onSizeChanged(TextureView.java:381)
       at android.view.View.sizeChange(View.java:24668)
       at android.view.View.setFrame(View.java:24601)
       at android.view.View.layout(View.java:24458)
       at expo.modules.camera.ExpoCameraView.onLayout(ExpoCameraView.kt:113)
       at android.view.View.layout(View.java:24461)
       at android.view.ViewGroup.layout(ViewGroup.java:7412)
       at com.facebook.react.uimanager.NativeViewHierarchyManager.updateLayout(NativeViewHierarchyManager.java:254)
       at com.facebook.react.uimanager.NativeViewHierarchyManager.updateLayout(NativeViewHierarchyManager.java:222)
       at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.updateLayout(ReanimatedNativeHierarchyManager.java:256)
       at com.facebook.react.uimanager.UIViewOperationQueue$UpdateLayoutOperation.execute(UIViewOperationQueue.java:169)
       at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:915)
       at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1026)
       at com.facebook.react.uimanager.UIViewOperationQueue.access$2600(UIViewOperationQueue.java:47)
       at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1086)
       at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
       at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
       at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1106)
       at android.view.Choreographer.doCallbacks(Choreographer.java:866)
       at android.view.Choreographer.doFrame(Choreographer.java:792)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8751)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Environment

  expo-env-info 1.2.0 environment info:
    System:
      OS: macOS 14.0
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 16.14.0 - ~/.nvm/versions/node/v16.14.0/bin/node
      Yarn: 1.22.19 - /opt/homebrew/bin/yarn
      npm: 8.3.1 - ~/.nvm/versions/node/v16.14.0/bin/npm
      Watchman: 2023.12.04.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.12.1 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0
    IDEs:
      Android Studio: 2022.3 AI-223.8836.35.2231.11090377
      Xcode: 15.0/15A240d - /usr/bin/xcodebuild
    npmPackages:
      expo: 49.0.21 => 49.0.21 
      react: 18.2.0 => 18.2.0 
      react-dom: 17.0.2 => 17.0.2 
      react-native: zeptonow/react-native-patch#v0.71.12 => 0.71.12 
    Expo Workflow: bare
Ademivaldo commented 6 months ago

+1

Dr0pG commented 5 months ago

+1

nickfletcherr commented 5 months ago

We're seeing this in our production environment as well. One thing to note is that so far it is only affecting Android 14 (SDK 34).

farkerhaiku commented 4 months ago

I've seen this also on a motorola running Android 11, but 99% of cases are on android 14

chanphiromsok commented 3 months ago

Updated

+1 Model:Pixel 3 XL

Firebase Crashlytics Log ```js Fatal Exception: java.lang.RuntimeException: startPreview failed at android.hardware.Camera.startPreview(Camera.java) at com.google.android.cameraview.Camera1.startCameraPreview(Camera1.java:187) at com.google.android.cameraview.Camera1.start(Camera1.java:137) at com.google.android.cameraview.CameraView.start(CameraView.java:284) at expo.modules.camera.ExpoCameraView.onHostResume(ExpoCameraView.kt:304) at expo.modules.adapters.react.services.UIManagerModuleWrapper$3.onHostResume(UIManagerModuleWrapper.java:149) at com.facebook.react.bridge.ReactContext$1.run(ReactContext.java:267) at android.os.Handler.handleCallback(Handler.java:938) 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:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7842) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) ```