mapbox / mapbox-vision-android-teaser

Other
29 stars 13 forks source link

Cannot access cameras USB Camera through Camera2 API #224

Open PYBurosse opened 3 years ago

PYBurosse commented 3 years ago

Hello,

I am currently trying to build an app using visio, that is meant to run on a qualcomm android board. This OS is modified so that USB cameras are recognised by the Camera2 API, and that works fine with our others apps, so I dont believe I need to use the UVCCamera tutorial (https://docs.mapbox.com/help/tutorials/android-vision-sdk-usb-camera/). But when I try to run the one I build using the Vision SDK, or the mapbox-vision-teaser app, I get that same error :

2021-03-31 12:14:12.319 13485-13485/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.mapbox.vision.teaser, PID: 13485
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mapbox.vision.teaser/com.mapbox.vision.teaser.MainActivity}: kotlin.UninitializedPropertyAccessException: lateinit property cameraParameters has not been initialized
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: kotlin.UninitializedPropertyAccessException: lateinit property cameraParameters has not been initialized
        at com.mapbox.vision.video.videosource.camera.Camera2VideoSourceImpl.getCameraParameters$mapbox_android_vision_release(Camera2VideoSourceImpl.kt:63)
        at com.mapbox.vision.VisionManager.create(VisionManager.kt:213)
        at com.mapbox.vision.VisionManager.create$default(VisionManager.kt:206)
        at com.mapbox.vision.teaser.MainActivity.initVisionManagerCamera(MainActivity.kt:250)
        at com.mapbox.vision.teaser.MainActivity.startVision(MainActivity.kt:215)
        at com.mapbox.vision.teaser.MainActivity.onPermissionsGranted(MainActivity.kt:179)
        at com.mapbox.vision.teaser.MainActivity.onCreate(MainActivity.kt:149)
        at android.app.Activity.performCreate(Activity.java:7825)
        at android.app.Activity.performCreate(Activity.java:7814)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 

It seems to me that VisionManager cannot access the camera, but i can't figure out why.

I don't know if that matter, but the app should be running on an Android automotive. When I build it on my phone, it works fine, but it has embedded cameras...