2013-05-26 8 views
5

これは高度な質問です。なぜなら私はAndroid向けのカメラアプリケーションを開発してきた経験があり、基本が正しいからです。一部の電話では、電話するときにCamera.open()を使用しているRuntimeException

Camera.open(0); 

私はRuntimeExceptionを取得します。私のカメラアプリは、ほとんどの携帯電話(Androidの1000種類以上の機種)で動作しますが、いくつかの機種(約50種類以上の機種)で失敗します。また、デバイス間で矛盾しているように見えます。これは、アプリが同じ機種のデバイスで常に動作するか失敗することを意味します。例えば。アプリはいくつかのギャラクシーS2で動作しますが、他のS2では動作しません。

私はlogcatsのカップルを持っている:アンドロイド2.3.6でAndroid 4.0.4

05-26 12:22:26.150 I/CameraService(85): Opening camera 0<br/> 
05-26 12:22:26.150 I/NvOmxCamera(85): HAL_camera_device_open: open camera 0<br/> 
05-26 12:22:26.150 D/NvOmxCamera(85): HAL_openCameraHardware() use_camera_1st_source=1<br/> 
05-26 12:22:26.150 E/NvOmxCamera(85): Invalid camera ID 0, hardware does not support simultaneous CSI camera use<br/> 
05-26 12:22:26.150 E/CameraService(85): Could not open camera 0: -38<br/> 
05-26 12:22:26.150 I/CameraService(85): Destroying camera 0<br/> 
05-26 12:22:26.160 D/AndroidRuntime(25895): Shutting down VM<br/> 
05-26 12:22:26.160 W/dalvikvm(25895): threadid=1: thread exiting with uncaught exception (group=0x40a5a1f8)<br/> 
05-26 12:22:26.180 E/Crittercism(25895): java.lang.RuntimeException: Fail to connect to camera service<br/> 
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.native_setup(Native Method)<br/> 
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.<init>(Camera.java:304)<br/> 
05-26 12:22:26.180 E/Crittercism(25895): at android.hardware.Camera.open(Camera.java:264)<br/> 



05-26 11:27:16.984 W/CameraSwitch(7088): open main camera<br/> 
05-26 11:27:16.984 W/CameraSwitch(7088): no file - can't switch camera<br/> 
05-26 11:27:16.994 D/CameraService(66): CameraService::connect E (pid 7088, client 0xad08)<br/> 
05-26 11:27:16.994 D/CameraService(66): CameraService::connect X (pid 7088, new client 0xad08) rejected. (old pid 7173, old client 0x3ca30)<br/> 
05-26 11:27:16.994 D/CameraService(66): The old client is dead!<br/> 
05-26 11:27:16.994 D/AndroidRuntime(7088): Shutting down VM<br/> 
05-26 11:27:16.994 W/dalvikvm(7088): threadid=1: thread exiting with uncaught exception (group=0x400259f8)<br/> 
05-26 11:27:17.094 D/dalvikvm(7088): GC_FOR_MALLOC freed 15803 objects/957392 bytes in 93ms<br/> 
05-26 11:27:17.114 E/Crittercism(7088): java.lang.RuntimeException: Fail to connect to camera service<br/> 
05-26 11:27:17.114 E/Crittercism(7088): at android.hardware.Camera.native_setup(Native Method)<br/> 
05-26 11:27:17.114 E/Crittercism(7088): at android.hardware.Camera.<init>(Camera.java:118)<br/> 
05-26 11:27:17.114 E/Crittercism(7088): at android.hardware.Camera.open(Camera.java:91) 
<br/> 

私は多くのことを試してみましたが、私はただ、問題が何であるかを把握することはできません。このコード行は実行する最初の行の1つ(Camera.open())なので、エラーは私のコードにはありません。なぜこのラインがいくつかのカメラで失敗するのかどうかについての洞察は非常に役に立ちます。

関連性がある場合は、サービスからカメラを開いています。この問題を診断するために必要な情報を投稿することができます。ありがとう。

答えて

1

あなたのアプリにはカメラの権限と機能が含まれていますか?
の場合は、別のアプリでカメラが使用されている可能性があります。 android developersから


は「(カメラがカメラを無効にしている別のプロセス又はデバイスポリシーマネージャによって使用されている場合など)カメラを開くことに失敗した場合のRuntimeExceptionをスローします。」

+0

いいえ、これはアクセス許可の問題ではありません。私のアプリは1000種類以上のAndroid搭載端末で動作すると言っていたようです。私は、カメラアプリが別のアプリでどのように使用されているのか、疑問があります。厳密に言えば、カメラをロックしているバックグラウンドサービスが存在する可能性がありますが、多くのユーザーがカメラを使用することはほとんどありません。 – user2421790

関連する問題