Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-119089

QML Camera crashing on some devices

    XMLWordPrintable

Details

    • Android
    • 2273293ba (dev), c503819ca (6.6), 2b494c899 (tqtc/lts-6.5)
    • 2023wk48FOQtforAndroid

    Description

      did all my previous tests with Motorola g13 (Android 13) and Samsung A23 (Android 13), reported some bugs, but in principe the QML Camera was working.

      see https://t1p.de/ekkeCamera

      now tested some other devices and got crashes.

      on Nokia 7.1, Android 10 the Qt Declarativce Example is working, but from my App I'm getting

      W qtMainLoopThrea: type=1400 audit(0.0:1102873): avc: denied { ioctl } for path="/data/user/10/org.ekkescorner.enbw.enbwdocs.test/files/data/enbw/files/qt_temp.CwkVex" dev="mmcblk0p85" ino=1239279 ioctlcmd=9409 scontext=u:r:untrusted_app:s0:c18,c257,c522,c768 tcontext=u:object_r:app_data_file:s0:c18,c257,c522,c768 tclass=file permissive=0
      D libenbwDOCS_x_arm64-v8a.so: file saved as  "F_24.enbwdocs"
      W ImageReader_JNI: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers
      E AndroidRuntime: FATAL EXCEPTION: CameraBackground
      E AndroidRuntime: Process: org.ekkescorner.enbw.enbwdocs.test, PID: 32491
      E AndroidRuntime: java.lang.IllegalStateException: maxImages (10) has already been acquired, call #close before acquiring more.
      E AndroidRuntime:     at android.media.ImageReader.acquireNextImage(ImageReader.java:513)
      E AndroidRuntime:     at android.media.ImageReader.acquireLatestImage(ImageReader.java:397)
      E AndroidRuntime:     at org.qtproject.qt.android.multimedia.QtCamera2$5.onImageAvailable(QtCamera2.java:236)
      E AndroidRuntime:     at android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:798)
      E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:107)
      E AndroidRuntime:     at android.os.Looper.loop(Looper.java:214)
      E AndroidRuntime:     at android.os.HandlerThread.run(HandlerThread.java:67)
      W ImageReader_JNI: Unable to acquire a buffer item, very likely client tried to acquire more than maxImages buffers 

      (see similar exception sometimes at Samsung A23 here: https://bugreports.qt.io/browse/QTBUG-118309)

      on Google Pixel 6a, Android 13 I'm getting

      readyForCaptureChanged true 

      but when trying to capture

      D qml Capture error with Camera Rear Camera: 0. Camera2 Api error code: 4 

      followed by

      readyForCaptureChanged false 

      and this error

      and:W libenbwDOCS_x_arm64-v8a.so: java.lang.IllegalStateException: CameraDevice was already closed
      W libenbwDOCS_x_arm64-v8a.so:     at android.hardware.camera2.impl.CameraDeviceImpl.checkIfCameraClosedOrInError(CameraDeviceImpl.java:2442)
      W libenbwDOCS_x_arm64-v8a.so:     at android.hardware.camera2.impl.CameraDeviceImpl.submitCaptureRequest(CameraDeviceImpl.java:1234)
      W libenbwDOCS_x_arm64-v8a.so:     at android.hardware.camera2.impl.CameraDeviceImpl.capture(CameraDeviceImpl.java:1096)
      W libenbwDOCS_x_arm64-v8a.so:     at android.hardware.camera2.impl.CameraCaptureSessionImpl.capture(CameraCaptureSessionImpl.java:189)
      W libenbwDOCS_x_arm64-v8a.so:     at org.qtproject.qt.android.multimedia.QtCamera2.takePhoto(QtCamera2.java:383)
      W libenbwDOCS_x_arm64-v8a.so:     at org.qtproject.qt.android.QtNative.startQtApplication(Native Method)
      W libenbwDOCS_x_arm64-v8a.so:     at org.qtproject.qt.android.QtNative$7.run(QtNative.java:465)
      W libenbwDOCS_x_arm64-v8a.so:     at org.qtproject.qt.android.QtThread$1.run(QtThread.java:25)
      W libenbwDOCS_x_arm64-v8a.so:     at java.lang.Thread.run(Thread.java:1012) 

      later followed by

      E AndroidRuntime: FATAL EXCEPTION: CameraBackground
      E AndroidRuntime: Process: org.ekkescorner.enbw.enbwdocs.test, PID: 13169
      E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
      E AndroidRuntime:     at org.qtproject.qt.android.multimedia.QtCamera2$3.process(QtCamera2.java:132)
      E AndroidRuntime:     at org.qtproject.qt.android.multimedia.QtCamera2$3.onCaptureProgressed(QtCamera2.java:177)
      E AndroidRuntime:     at android.hardware.camera2.impl.CameraCaptureSessionImpl$1.lambda$onCaptureProgressed$3$android-hardware-camera2-impl-CameraCaptureSessionImpl$1(CameraCaptureSessionImpl.java:694)
      E AndroidRuntime:     at android.hardware.camera2.impl.CameraCaptureSessionImpl$1$$ExternalSyntheticLambda0.run(Unknown Source:8)
      E AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:942)
      E AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
      E AndroidRuntime:     at android.os.Looper.loopOnce(Looper.java:201)
      E AndroidRuntime:     at android.os.Looper.loop(Looper.java:288)
      E AndroidRuntime:     at android.os.HandlerThread.run(HandlerThread.java:67)
      I Process : Sending signal. PID: 13169 SIG: 9 

      this happens in 3 different apps where I'm using QML Camera.

      From Declarative Camera Example I'm also getting Android Stacktrace

      curious: these crashes are not always reproducable

       

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              bartlomiejmoskal Bartlomiej Moskal
              ekkescorner Ekkehard
              Votes:
              3 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes