简体   繁体   English

java.lang.RuntimeException:Camera.setParameters

[英]java.lang.RuntimeException: Camera.setParameters

i know that the question was asked before, and i did read all the solutions, but my case is kinda strange, i keep getting on Crash report on developer account the following: 我知道之前曾问过这个问题,并且确实阅读过所有解决方案,但是我的情况有点奇怪,我不断在开发人员帐户上获取以下崩溃报告:

java.lang.RuntimeException: at android.hardware.Camera.native_setParameters(Native Method:0) at android.hardware.Camera.setParameters(Camera.java:2080) at com.xxxxxxxxxx.core.xxxxxxxx.xxxxxxx.surfaceCreated(BackgroundVideoRecorder.java:119) at android.view.SurfaceView.updateWindow(SurfaceView.java:675) at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:185) at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2050) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1117) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6175) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:773) at android.view.Choreographer.doCallbacks(Choreographer.java:586) at android.view.Choreographer.doFrame(Choreographer.java:556) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:759) at android.os.Handler.handleCallback(Handler.java:739) at an java.lang.RuntimeException:在android.hardware.Camera.native_setParameters(本地方法:0)在android.hardware.Camera.setParameters(Camera.java:2080)在com.xxxxxxxxxx.core.xxxxxxxx.xxxxxxx.surfaceCreated(BackgroundVideoRecorder。 java:119)在android.view.SurfaceView.updateWindow(SurfaceView.java:675)在android.view.SurfaceView $ 3.onPreDraw(SurfaceView.java:185)在android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2050)在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1117)在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6175)在android。 view.Choreographer $ CallbackRecord.run(Choreographer.java:773)在android.view.Choreographer.doCallbacks(Choreographer.java:586)在android.view.Choreographer.doFrame(Choreographer.java:556)在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:759)在android.os.Handler.handleCallback(Handler.java:739)在 droid.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5421) at java.lang.reflect.Method.invoke(Native Method:0) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) droid.os.Handler.dispatchMessage(Handler.java:95)在android.os.Looper.loop(Looper.java:135)在android.app.ActivityThread.main(ActivityThread.java:5421)在java.lang.reflect在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:914)处的java.lang.reflect.Method.invoke(Method.java:372)处的.Method.invoke(本机方法:0) .android.internal.os.ZygoteInit.main(ZygoteInit.java:707)

Removed the application name for the sake of advertising, i tried the application on multiple devices and i cannot arrive to reproduce the error, even tho the devices that i tried it are available in the crash report, and in my parameter generation process i made sure to check if every parameter is supported, by checking the camera params here the code bellow: 为了做广告,删除了应用程序名称,我在多个设备上尝试了该应用程序,但是即使崩溃报告中提供了我尝试过的设备,我也无法到达重现该错误,并且在我的参数生成过程中,我确保了通过检查以下代码中的相机参数来检查是否支持每个参数:

   if (front) {
            params = camera.getParameters();
            params.setRotation(90);
            List<String> focusModes = params.getSupportedFocusModes();
            if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
                params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
                Log.w("VideoTakerFront","Continuous Video Supported");
            }
        } else {
            params = camera.getParameters();
            params.setRotation(270);
            List<String> focusModes = params.getSupportedFocusModes();
            if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
                params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
                Log.w("VideoTakerBack","Continuous Video Supported");
            }
        }
        camera.setParameters(params);
                if (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1){
                    camera.enableShutterSound(false);
                }
                else{
                    AudioManager audio= (AudioManager)this.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
                    audio.setStreamVolume(AudioManager.STREAM_SYSTEM, 0,   AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
                }
        Log.w("VideoTaker", "Open Camera");

Thank you for the help! 感谢您的帮助!

我发现了问题...报告问题的用户使用的是较旧版本的应用程序,我没有关注该版本,这个问题曾经发生在较旧的版本中,而我并没有获得支持。对焦模式并检查是否可用,谢谢!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM