I experienced an issue with the Camera component.
I Have a simple component with a camera like that:
const onQrCodeScan = (result) => console.log(result);
...
<Camera
key={ratio}
onBarCodeScanned={onQrCodeScan}
barCodeScannerSettings={{
barCodeTypes: ['qr'],
}}
style={styles.camera}
type={Camera.Constants.Type.back}
/>
Issue:
- When built with expli-cli, the application works well
- When built with eas-cli, the application crash when the camera is loaded
The logcat command for my device shows this exception:
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$AsyncFutureTask.done(AsyncTask.java:429)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)
Caused by: java.lang.IllegalArgumentException: Scan output cannot be null
at expo.modules.barcodescanner.scanners.ZxingBarCodeScanner.scan(ZxingBarCodeScanner.kt:56)
at expo.modules.camera.tasks.BarCodeScannerAsyncTask.doInBackground(BarCodeScannerAsyncTask.java:36)
at expo.modules.camera.tasks.BarCodeScannerAsyncTask.doInBackground(BarCodeScannerAsyncTask.java:6)
at android.os.AsyncTask$3.call(AsyncTask.java:389)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 4 more
My app is currently using:
- Managed workflow
- expo 42
- eas-cli/0.33.0 darwin-x64 node-v12.22.6
I tried:
- Upgrading to expo 43 : same issue
- Switching from expo-camera to expo-barcode-scanner: same issue
Any idea ?