実際のデバイスでカメラアプリケーションを扱う際に問題があります。私が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
:ここでLogcatに示したエラーであります代わりに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