无法在某些设备上连接到相机服务

时间:2021-03-29 11:09:57

标签: android crash android-camera runtimeexception

我的 QrScannerActivity 代码:

override fun onRequestPermissionsResult(
    requestCode: Int,
    permissions: Array<out String>,
    grantResults: IntArray
) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    viewModel.onRequestPermissionsResult(requestCode, grantResults)
}

视图模型代码:

fun onRequestPermissionsResult(requestCode: Int, grantResults: IntArray) {
    if (requestCode == CAMERA_PERMISSION_REQUEST_CODE
        && grantResults.firstOrNull() == PackageManager.PERMISSION_GRANTED
    ) {
        permissionGrantEvent.postUnitEvent()
    } else {
        errorMessageResId.postValue(R.string.errors_permission_denied)
    }
}

错误信息 1:

<块引用>

致命异常:java.lang.RuntimeException:传递结果失败 结果信息{who=@android:requestPermissions:, request=328, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS(有 附加)}} 到活动 {com.mandarine.authenticator/com.mandarine.authenticator.features.qr.QrScannerActivity}: java.lang.RuntimeException:无法连接到相机服务 android.app.ActivityThread.deliverResults(ActivityThread.java:5360) 在 android.app.ActivityThread.handleSendResult(ActivityThread.java:5401) 在 android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:237) 在 android.app.ActivityThread.main(ActivityThread.java:8154) 在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

错误信息2:

<块引用>

致命异常:java.lang.RuntimeException:无法连接到相机 服务 在 android.hardware.Camera.(Camera.java:545) 在 android.hardware.Camera.open(Camera.java:385) 在 com.google.android.gms.vision.CameraSource.zzc(CameraSource.java:82) 在 com.google.android.gms.vision.CameraSource.start(CameraSource.java:22) 在 com.mandarine.authenticator.features.qr.QrScannerActivity.startCameraSource(QrScannerActivity.java:174) 在 com.mandarine.authenticator.features.qr.QrScannerActivity.access$startCameraSource(QrScannerActivity.java:54) 在 com.mandarine.authenticator.features.qr.QrScannerActivity$setupSurface$1.surfaceCreated(QrScannerActivity.java:142) 在 android.view.SurfaceView.updateWindow(SurfaceView.java:666) 在 android.view.SurfaceView$3.onPreDraw(SurfaceView.java:199) 在 android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:921) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1230) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6731) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) 在 android.view.Choreographer.doCallbacks(Choreographer.java:590) 在 android.view.Choreographer.doFrame(Choreographer.java:560) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6117) 在 java.lang.reflect.Method.invoke(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

在 AndroidManifest.xml 中我有下一个权限:

<uses-permission android:name="android.permission.CAMERA" />

0 个答案:

没有答案