2017-06-15 5 views
0

Camera.open(cameraIndex)(カメラ1つのAPI)

を呼び出すときに、私は次のエラーを取得していますMethodInvocationProxy:メソッドの呼び出し中に例外が発生しました。public abstract boolean android.media.IAudioService.isCameraSoundForced()throws android.os.RemoteException java.lang.SecurityException:メソッドクラスandroid.media.IAudioService $ Stub $ Proxy.isCameraSoundForced []アプリ

06-18 10:23:43.361 26240-26359 /? E /同位体:UID:[10185] PID:[26240] MethodInvocationStub:例外は、メソッド isCameraSoundForcedの呼び出し中 java.lang.SecurityException:メソッドクラス android.media.IAudioService $スタブ$ Proxy.isCameraSoundForcedに利用でき、[]ではない (PG:63) com.google.android.instantapps.supervisor.ipc.proxies.SandboxEnforcer.enforceUnsupportedMethodPolicy(PG:17) (com.google.android.instantapps.supervisor.ipc.ProxyMethodHandler.handleMethod(PG:50) 、com.google.android.instantapps.supervisor.ipc.base.MethodInvocationStub.onTransact(PG:56)android.os.Binder.execTransact(Binder.java:453)の06-18 10:23:43.361 26274-26274 /? E /同位体:UID:[99000] PID:[26274] MethodInvocationProxy:メソッドのクラス:例外 ブールandroid.media.IAudioService.isCameraSoundForced(メソッドpublic抽象の呼び出し中に) android.os.RemoteException java.lang.SecurityExceptionをスロー android.media.IAudioService $ Stub $ Proxy.isCameraSoundForced [] はインスタントアプリで利用できません android.os.Parcel.readException(Parcel.java:1620) at android.os.Parcel.readException(Parcel.java: 1573) com.google.android.instantapps.supervisor.ipc.base.MethodInvocationProxy.readReply(PG:39) com.google.android.instantapps.supervisor.ipc.base.MethodInvocationProxy.invoke(PG:130 ) at java.lang.reflect.Proxy.invoke(Proxy.java:393) $ Proxy5.isCameraSoundForced(不明なソース) android.hardware.Camera.getCameraInfo(Camera.java:260) at com.chegg .feature.wizard.camera.CameraActivity.getBackFacingCamera(CameraActivity.java:357) at com.chegg.feature.wizard.camera.CameraActivity.startCamera(CameraActivity.java:101) at com.chegg.feature.wizard.camera .CameraActivity.startCameraSafely(CameraActivity.java:79) at com.chegg.feature.wizard.camera.CameraActivity.onResume(CameraActivity.java:74) android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1286) アンドロイドでapp.Activity.performResume(Activity.java:6987) (android.app.ActivityThread.performResumeActivity(ActivityThread.java:4144) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4245) android.appにあります。 ActivityThread.handleLaunchActivity(ActivityThread.java:3360)android.app.ActivityThread.accessの $ 1100(ActivityThread.java:221)android.app.ActivityThreadの $ H.handleMessage(ActivityThread.java:1794) はandroid.osにあります.Handler.dispatchMessage(Handler.java:102) android.os.Looper.loop(Looper.java:158) android.appにあります。ActivityThread.main(ActivityThread.java:7224) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

答えて

1

android.hardware.Cameraは、APIレベル21で廃止されました。

https://developer.android.com/reference/android/hardware/camera2/package-summary.html

android.hardware.camera2パッケージは、Androidデバイスに接続 個々のカメラ・デバイスへのインターフェースを提供します。これは廃止予定のCameraクラスの代わりに を置き換えます。

この問題は、エンジニアは、以下の情報提供https://issuetracker.google.com/issues/38485484 で対処されました:「インスタントアプリは古い非推奨android.hardware.Cameraをサポートしていない彼らは唯一のカメラ2 APIをサポートする」

0

インスタントアプリには機能が制限されていますが、明らかにその方法はサポートされていません。 InstantApps.isInstantApp()メソッドを使用して、インストールされているかどうかを確認し、インストール済みの場合のみisCameraSoundForcedを呼び出すことができます。

詳細情報:あなたが代わりにandroid.hardware.camera2使用する必要がある唯一のAPIレベル23からインスタントアプリ支持装置ながらhttps://developer.android.com/topic/instant-apps/reference.html

+0

OK。それでも、Camera 1 API Camera.open(cameraIndex)を使用している場合、このエラーをどのように克服できますか。ありがとう! –

0

インスタントアプリはAndroid Oと以前のバージョンでネイティブに実行され、Google Playサービスを使用して実行されます。したがって、カメラ1は、ネイティブで実行されないため、API 26より前のインスタントアプリではサポートされていません。しかし、API 26のインスタントアプリでCamera 1 apiを使用し、Camera 1 APIのライフが想像するまで使用できます。

しかし、インスタントアプリではカメラ2 api、インストールされているアプリではカメラ1 apiを使用しています。

0

これは、インスタントアプリのGoogle Playサービスサポートの現在の実装のバグです。

将来のリリースで修正される予定です。この時点で、android.hardware.Camera APIは正しく機能するはずです。

残念ながら、使用可能な修正の時間枠については、詳細はありません。

関連する問題