Status Update
Comments
le...@google.com <le...@google.com> #2
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
do...@gmail.com <do...@gmail.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
le...@google.com <le...@google.com> #4
-
Second crash in the description is from a real device. Experienced it myself on two different Xiaomi phones, plus lots of crashes from users in the Google Play console.
-
Dynamic features are not used in the application.
As a wild guess, I have downgraded build tools from 31.0.0 to 30.0.3, compileSdk from 31 to 30, and moved all work with Language ID to the service in a separate process (just to be sure that crash can kill secondary process instead of main). This combination is in beta for 2 days by now and I don't see any SIGSEGV crashes.
le...@google.com <le...@google.com> #5
Hmm, I feel the crash might be something related to separate/secondary process.
I also changed compileSdk and targetSDK to 31 but still cannot repro this issue.
le...@google.com <le...@google.com> #6
On the contrary, there was no separate process before, when crashes started.
In the new build (with the aforementioned changes) I can see SIGSEGV crash, but only one instead of dozens and it has a bit different backtrace:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
liblanguage_id_jni.so (offset 0x11e000)
backtrace:
#00 pc 000000000003c7c0 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003b960 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003bb48 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 000000000003bafc /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000036c98 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000032714 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000031cac /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/split_config.arm64_v8a.apk!lib/arm64-v8a/liblanguage_id_jni.so (offset 0x11e000)
#00 pc 0000000000057438 /data/app/azagroup.reedy-mF7zTu2bv_ELlbFArwNgqA==/oat/arm64/base.odex (offset 0x57000)
wu...@google.com <wu...@google.com>
ap...@google.com <ap...@google.com> #7
FYI, ML Kit launched a new language ID SDK in the latest release, which uses a new language ID model.
Could you try the new SDK version(17.0.0) to check if you can still repro this native crash? Thanks!
Description
1.0.0-beta01
CAMERA APPLICATION NAME AND VERSION:
CameraXBasic with modification to have torch always on
ANDROID OS BUILD NUMBER:
QQ2A.200305.002
DEVICE NAME:
Pixel 3a
DESCRIPTION:
Enabling torch after camera binding is not reliable. It always works only for the first Activity launch, but when returning to the same Activity is not working correctly.
LIST ANY EXPERIMENTAL FEATURES:
N/A
STEPS TO REPRODUCE:
1. Launch the example app with modification below, which enables torch after binding.
2. Navigate to Gallery.
3. Go Back to camera preview.
OBSERVED RESULTS:
A torch is switched off.
EXPECTED RESULTS:
A torch is always on.
REPRODUCIBILITY:
5 of 5
ADDITIONAL INFORMATION:
Log from opening app (torch is on) -> Gallery (then Back button) -> camera (torch is off):
CameraXBasic: Screen metrics: 1080 x 2220
CameraXBasic: Preview aspect ratio: 1
CameraRepository: Added camera: 0
UseCaseAttachState: Active and online use case: [] for camera: 0
CameraRepository: Added camera: 1
UseCaseAttachState: Active and online use case: [] for camera: 1
UseCaseAttachState: Active and online use case: [] for camera: 0
Camera: Use cases [ImageCapture:androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, Preview:androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, ImageAnalysis:androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] now ONLINE for camera 0
UseCaseAttachState: Active and online use case: [] for camera: 0
Camera: Resetting Capture Session
Camera: releasing session in state INITIALIZED
Camera: Transitioning camera internal state: INITIALIZED --> OPENING
Camera: Opening camera: 0
UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
Camera: Use case ImageCapture:androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b] for camera: 0
Camera: Use case Preview:androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf] for camera: 0
Camera: Use case ImageAnalysis:androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
Camera: CameraDevice.onOpened(): 0
Camera: Transitioning camera internal state: OPENING --> OPENED
UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
CaptureSession: Opening capture session.
CaptureSession: Attempting to send capture request onConfigured
CaptureSession: Issuing request for session.
CaptureSession: CameraCaptureSession.onConfigured() mState=OPENED
CaptureSession: CameraCaptureSession.onReady() OPENED
Camera: Use cases [ImageCapture:androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, Preview:androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, ImageAnalysis:androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] now OFFLINE for camera 0
Camera: Resetting Capture Session
Camera: releasing session in state OPENED
Camera: Closing camera: 0
Camera: Transitioning camera internal state: OPENED --> CLOSING
Camera: Resetting Capture Session
Camera: releasing session in state CLOSING
UseCaseAttachState: Active and online use case: [] for camera: 0
UseCaseAttachState: Active and online use case: [] for camera: 0
Camera: issue capture request for camera 0
UseCaseAttachState: Active and online use case: [] for camera: 0
CaptureSession: CameraCaptureSession.onClosed()
Camera: CameraDevice.onClosed(): 0
Camera: Transitioning camera internal state: CLOSING --> INITIALIZED
Camera: Use cases [ImageCapture:androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, Preview:androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, ImageAnalysis:androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] now ONLINE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
Camera: Resetting Capture Session
Camera: releasing session in state INITIALIZED
Camera: Transitioning camera internal state: INITIALIZED --> OPENING
Camera: Opening camera: 0
UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
Camera: CameraDevice.onOpened(): 0
Camera: Transitioning camera internal state: OPENING --> OPENED
UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] for camera: 0
CaptureSession: Opening capture session.
CameraXBasic: Screen metrics: 1080 x 2220
CameraXBasic: Preview aspect ratio: 1
Camera: Use cases [ImageCapture:androidx.camera.core.ImageCapture-0adade8a-60ab-4b3e-8b97-370ff318f73b, Preview:androidx.camera.core.Preview-c3e392d8-57ad-40a2-989e-b56ebd134eaf, ImageAnalysis:androidx.camera.core.ImageAnalysis-1671baa6-a5f8-45f0-9bb7-dab949c97b3b] now OFFLINE for camera 0
Camera: Resetting Capture Session
Camera: releasing session in state OPENED
Camera: Closing camera: 0
Camera: Transitioning camera internal state: OPENED --> CLOSING
Camera: Resetting Capture Session
Camera: releasing session in state CLOSING
UseCaseAttachState: Active and online use case: [] for camera: 0
Camera: Use cases [ImageCapture:androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, ImageAnalysis:androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, Preview:androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] now ONLINE for camera 0
UseCaseAttachState: Active and online use case: [] for camera: 0
Camera: Resetting Capture Session
Camera: releasing session in state CLOSING
Camera: Transitioning camera internal state: CLOSING --> REOPENING
Camera: Transitioning camera internal state: REOPENING --> OPENED
UseCaseAttachState: All use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
Camera: Use case ImageCapture:androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a] for camera: 0
Camera: Use case ImageAnalysis:androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc] for camera: 0
Camera: Use case Preview:androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0 ACTIVE for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
CaptureSession: CameraCaptureSession.onConfigured() mState=RELEASING
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
Camera: issue capture request for camera 0
UseCaseAttachState: Active and online use case: [androidx.camera.core.ImageCapture-a07cad15-fa28-4e60-a12b-b7b572df394a, androidx.camera.core.ImageAnalysis-6e588f99-bc88-4afd-b906-17a67e514dbc, androidx.camera.core.Preview-764071db-da2c-42ff-9b85-002d632d1ac0] for camera: 0
CaptureSession: CameraCaptureSession.onReady() RELEASING
CaptureSession: Opening capture session.
CaptureSession: CameraCaptureSession.onClosed()
CaptureSession: Attempting to send capture request onConfigured
CaptureSession: Issuing request for session.
CaptureSession: Issuing capture request.
CaptureSession: CameraCaptureSession.onConfigured() mState=OPENED
CaptureSession: CameraCaptureSession.onReady() OPENED
CODE FRAGMENTS:
Use an example from
and just change binding to this:
camera = cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture, imageAnalyzer)
.apply { cameraControl.enableTorch(true) }