2017-12-10 8 views
0

アンドロイドのネイティブアプリを作成しましたが、特定の条件下でクラッシュしています。それは確かにカメラと関係がありますが、それが何であるかは正確には分かりません。アンドロイドのカメラによるクラッシュ

私はアンドロイドの開発者ではないことを強調したいと思いますが(私はほとんどがPythonで開発しています)、そこにあるアンドロイドの専門家がエラーの文脈を提供できるかどうか疑問です。何かがうまくいかない場合Camera.setParameters()はのRuntimeExceptionをスローすることが

java.lang.RuntimeException: 
    at android.hardware.Camera.native_setParameters (Native Method) 
    at android.hardware.Camera.setParameters (Camera.java:1946) 
    at identidata.br.camera.CameraPicturePreview.surfaceChanged (CameraPicturePreview.java:75) 
    at android.view.SurfaceView.updateWindow (SurfaceView.java:611) 
    at android.view.SurfaceView$3.onPreDraw (SurfaceView.java:181) 
    at android.view.ViewTreeObserver.dispatchOnPreDraw (ViewTreeObserver.java:944) 
    at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2000) 
    at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1073) 
    at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:5985) 
    at android.view.Choreographer$CallbackRecord.run (Choreographer.java:767) 
    at android.view.Choreographer.doCallbacks (Choreographer.java:580) 
    at android.view.Choreographer.doFrame (Choreographer.java:550) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:753) 
    at android.os.Handler.handleCallback (Handler.java:739) 
    at android.os.Handler.dispatchMessage (Handler.java:95) 
    at android.os.Looper.loop (Looper.java:135) 
    at android.app.ActivityThread.main (ActivityThread.java:5912) 
    at java.lang.reflect.Method.invoke (Native Method) 
    at java.lang.reflect.Method.invoke (Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405) 
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200) 

答えて

0

のAndroidカメラAPIドキュメント:ここ

は、Google Playでのコンソールからのスタックトレースです。 Androidの断片化を考慮すると、setParameters()の無邪気な呼び出しによって隠された非互換性を引き起こす可能性があります。したがって、私は強くこの呼び出しの周りで try … catch RuntimeExceptionにすることを強くお勧めします。

surfaceChanged()コールバックを処理するときにサポートされていないプレビューサイズを設定しようとすると、特定のクラッシュが発生しても驚かれることはありません。このコールバックは、の高さがのパラメータであり、これらの値をCamera.Parameters.setPreviewSize()に使用するのは自然な誘惑です。残念ながら、これは動作しません。 supported Preview Sizesのリストから常に値のいずれかを選択する必要があります。

関連する問題