У меня есть 2 устройства, чтобы проверить мое приложение: v370 Acer под управлением Android 4.2.2 и Samsung Galaxy S6 на 6.0.1Camera.open работает на Android 4.2.2, но не работает на 6.0.1
Приложение отлично работает на Acer, но мгновенно падает на S6. Я использую _camera = Camera.open(0);
и отладка говорит, что он сбой в этот момент.
Ошибки я получаю:
09-15 11:24:33.491 15284-15284/com.user.qrReader E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.user.qrReader, PID: 15284
java.lang.RuntimeException: Unable to resume activity {com.user.qrReader/com.user.qrReader.MainActivity}:
java.lang.RuntimeException: Fail to connect to camera service
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4156)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4250)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3361)
at android.app.ActivityThread.access$1100(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.<init>(Camera.java:568)
at android.hardware.Camera.open(Camera.java:405)
at com.user.qrReader.CameraPreview.openCamera(CameraPreview.java:206)
at com.user.qrReader.CameraPreview.captureStart(CameraPreview.java:288)
at com.user.qrReader.QRReaderAppManager.onResume(QRReaderAppManager.java:208)
at com.user.qrReader.MainActivity.onResume(MainActivity.java:187)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1286)
at android.app.Activity.performResume(Activity.java:6987)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4145)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4250)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3361)
at android.app.ActivityThread.access$1100(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Вот разрешения в моем манифесте:
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
Я не могу использовать Camera2, потому что я должен держать приложение совместимо, по крайней мере, андроид 4, и я не знаю, в каком направлении идти. Это должно быть что-то связанное с новым андроидом, но я не могу найти что. Есть предположения ?
EDIT: Вы также можете сделать это вручную, как только APK установлен, перейдя в настройки> приложения> диспетчер приложений> {my app}> permissions> разрешить камеру. Конечно, это ужасно и бесполезно, если у вас есть решение, но это помогло мне немного, пока я отлаживался, поэтому я оставлю его здесь. Благодарим вас за ответы.
может быть это из-за время выполнения разрешения в зефира –
на 6.0 и необходимо проверить разрешение на время выполнения и CAMERA трудно разрешения так и нужно, чтобы проверить это – Rodriquez
Возможно, [это] (HTTP : //stackoverflow.com/a/33498105/5165244) может оказать некоторую помощь. –