Camerax无法获得支持的分辨率

时间:2019-11-18 09:07:01

标签: android android-camerax

我正在使用CameraX来构建带有“预览”和“分析”用例的相机。我已经在模拟器和设备上本地构建并运行了我的应用程序。但是,当我发布到Google Play后,我得到了我的其中一个用户的crashlytics报告的以下堆栈跟踪:

Fatal Exception: java.lang.IllegalArgumentException: Can not get supported output size under supported maximum for the format: 34
       at androidx.camera.camera2.impl.SupportedSurfaceCombination.checkSupported(SupportedSurfaceCombination.java)
       at androidx.camera.camera2.impl.SupportedSurfaceCombination.checkSupported(SupportedSurfaceCombination.java)
       at androidx.camera.camera2.impl.Camera2DeviceSurfaceManager.getMaxOutputSize(Camera2DeviceSurfaceManager.java)
       at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java)
       at androidx.camera.core.CameraX.attach(CameraX.java)
       at com.glan.input.fragment.CameraFragment.startCamera(CameraFragment.java) // *** Note this is where I call CameraX.bindToLifecycle(activity, previewUseCase, analysisUseCase)
       at com.glan.input.fragment.CameraFragment.access$000(CameraFragment.java)
       at androidx.fragment.app.Fragment.onActivityCreated(Fragment.java)
       at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl.dispatchPause(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java)
       at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java)
       at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl.allocBackStackIndex(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl.completeShowHideFragment(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java)
       at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5421)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我查看了CameraX的源代码,发现当没有图像输出尺寸候选匹配给定的用例和图像格式组合时,抛出此错误。 34(错误消息的最后一个字符)是PRIVATE image format

我已经遍历了我正在使用的两个用例的源代码,似乎唯一可以选择的格式是YUV_420_888(预览和分析)或{{1} }(分析)。

在阅读CameraX代码时,我肯定有可能错过了一些东西。如何确保不使用JPEG图片格式?

对于它的价值,这是发生此崩溃的设备的设备信息:

PRIVATE

0 个答案:

没有答案