실제 장치에서 카메라 애플리케이션을 처리하는 데 문제가 있습니다. 내가 genymotion 에뮬레이터 버전 4.4.2 (API 19)에서 내 응용 프로그램을 실행할 때 그것은 잘 작동 ..하지만 내 실제 장치 Huawei P9 Lite 버전 6 (API 23)에서 실행할 때 충돌이 발생합니다. "나는 내가이에서 어쩌면 생각"android.hardware.camera가되지 않습니다 "하고 내가 사용하는 것을 볼 수있는 카메라 객체를 처리 할 우리 반에서카메라가 에뮬레이터에서 작동하지만 실제 장치에서는 작동하지 않습니다.
05-01 23:31:10.963 9308-9308/edu.sfsu.cs.orange.ocr W/CameraBase: An error
occurred while connecting to camera: 0
05-01 23:31:10.963 9308-9308/edu.sfsu.cs.orange.ocr E/Camera-JNI:
android_hardware_Camera_native_setup Error: -1
05-01 23:31:10.963 9308-9308/edu.sfsu.cs.orange.ocr E/Camera: Camera new
cameraInitNormal:-1
다음은 로그 캣에 표시하는 오류입니다 android.hardware.camera2 "를 대신 사용하십시오. 그러나 나는 카메라 객체를 많이 사용하고 메소드를 사용하면 코드에서 많은 변화가 일어날 것입니다. 피할 수 있습니까? 아니면이 문제가 다른 것입니까?
카메라에 대한 권한은 이미 내 매니페스트에 포함되어 난 내 빌드 파일에이 구성을 사용하고 있습니다 :
compileSdkVersion 24
buildToolsVersion '25.0.0'
minSdkVersion 9
targetSdkVersion 24
UPDATE 여기
내가 문제에서 생각하는 이유입니다 사용되지 않는 방법 :
try {
// Open and initialize the camera
cameraManager.openDriver(surfaceHolder);
// Creating the handler starts the preview, which can also throw a RuntimeException.
handler = new CaptureActivityHandler(this, cameraManager, isContinuousModeActive);
} catch (IOException ioe) {
showErrorMessage("Error", "Couldn't initialize camera. Please try restarting device.");
} catch (RuntimeException e) {
// Barcode Scanner has seen crashes in the wild of this variety:
// java.?lang.?RuntimeException: Fail to connect to camera service
showErrorMessage("Error", "Could not initialize camera. Please try restarting device.");
}
는 응용 프로그램이이 RuntimeException을 던졌습니다 내 전화에 시작합니다.
openDrive 방법 :
내가이 문제를 해결할 수있는 방법을public synchronized void openDriver(SurfaceHolder holder) throws IOException {
Camera theCamera = camera;
if (theCamera == null) {
theCamera = Camera.open();
if (theCamera == null) {
throw new IOException();
}
camera = theCamera;
}
camera.setPreviewDisplay(holder);
if (!initialized) {
initialized = true;
configManager.initFromCameraParameters(theCamera);
if (requestedFramingRectWidth > 0 && requestedFramingRectHeight > 0) {
adjustFramingRect(requestedFramingRectWidth, requestedFramingRectHeight);
requestedFramingRectWidth = 0;
requestedFramingRectHeight = 0;
}
}
configManager.setDesiredCameraParameters(theCamera);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
reverseImage = prefs.getBoolean(PreferencesActivity.KEY_REVERSE_IMAGE, false);
}
어떤 생각? 미리 감사드립니다
나는 액세스 할 수 없습니다! 'cat/proc/kmsg'를 실행할 때 허가가 거부되었습니다! 그리고 나는 방금 전화를 샀다. 나는 그것을 뿌리 뽑을 의도가 없다. 나의 업데이트 된 요청을 확인해 보라! – user3816569