googlesamples / googlesamples/mlkit

[Bug report] Demo app barcode AutoZoom not working for CameraXLivePreview in Kotlin

Open
#755 0 comments 0 reactions 1 assignee Claimed by @zhouyiself View on GitHub
Dominant language
Kotlin
Stars
4.3k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
Bug only in the demo app:
When running the vision-quickstart demo in CameraXLivePreview.kt the AutoZoom feature does not work when using the barcode image processor. The exception is non-fatal but a NullPointer is thrown when trying to set the camera zoom ratio.

**To Reproduce**
Steps to reproduce the behavior in sample app:
1. Go to 'Run the ML Kit in Kotlin'
2. Select 'CameraXLivePreviewActivity'
3. In the image processor options select 'barcode scanning'
4. Attempt to scan a barcode and monitor logs

Error trace:

```
CameraXLivePreview com.google.mlkit.vision.demo I Set zoom ratio 1.5238097
AutoZoom com.google.mlkit.vision.demo W Unable to set zoom to 1.5238097
java.lang.NullPointerException
at com.google.mlkit.vision.demo.kotlin.CameraXLivePreviewActivity.bindAnalysisUseCase$lambda$5(CameraXLivePreviewActivity.kt:319)
at com.google.mlkit.vision.demo.kotlin.CameraXLivePreviewActivity.$r8$lambda$0riAQ7wGR95ntlO3_UXXcbaS5J4(Unknown Source:0)
at com.google.mlkit.vision.demo.kotlin.CameraXLivePreviewActivity$$ExternalSyntheticLambda0.setZoom(Unknown Source:2)
at com.google.android.gms.internal.mlkit_vision_barcode.zzus.zzc(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:2)
at com.google.android.gms.internal.mlkit_vision_barcode.zzup.zza(Unknown Source:4)
at com.google.android.gms.internal.mlkit_vision_barcode.zzex.zza(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:1)
at com.google.android.gms.internal.mlkit_vision_barcode.zzeu.run(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:4)
at com.google.android.gms.internal.mlkit_vision_barcode.zzey.run(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:1)
at com.google.android.gms.internal.mlkit_vision_barcode.zzem.zzc(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:3)
at com.google.android.gms.internal.mlkit_vision_barcode.zzus.zzl(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:4)
at com.google.android.gms.internal.mlkit_vision_barcode.zzus.zzi(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:45)
at com.google.mlkit.vision.barcode.internal.BarcodeScannerImpl.zzd(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.3.0:17)
at com.google.mlkit.vision.barcode.internal.zze.then(Unknown Source:8)
at com.google.android.gms.tasks.zzo.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
at android.os.Handler.handleCallback(Handler.java:942)
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:7944)
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:942)
```

**Expected behavior**
Camera zooms into the barcode

**Actual behaviour**
Camera does not zoom into the barcode and throws NPE silently

**SDK Info:**
- 'com.google.mlkit:barcode-scanning:17.2.0'

I believe the app is missing the re-assignment of the camera variable after binding the analysis use case

Please assign camera in `CameraXLivePreviewActivity.kt:408`:

```
camera = cameraProvider!!.bindToLifecycle(...)
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.