【问题标题】:camera getParameters failed相机获取参数失败
【发布时间】:2014-04-21 03:57:55
【问题描述】:

该代码可在三星手机上正常运行。但是手机 HTC ONE 和许多其他手机应用程序在调用以下方法 camera.getParameters() 时崩溃

日志:

java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1460)
at com.bumsun.trollface.MainActivity$8.onCheckedChanged(MainActivity.java:136)
at android.widget.CompoundButton.setChecked(CompoundButton.java:126)
at android.widget.Switch.setChecked(Switch.java:688)
at android.widget.Switch.animateThumbToCheckedState(Switch.java:679)
at android.widget.Switch.stopDrag(Switch.java:669)
at android.widget.Switch.onTouchEvent(Switch.java:629)
at android.view.View.dispatchTouchEvent(View.java:7127)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1919)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
at android.view.View.dispatchPointerEvent(View.java:7307)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4157)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4136)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4228)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:124)
at android.app.ActivityThread.main(ActivityThread.java:4800)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

标签: android camera


【解决方案1】:
if (mCamera == null) 
    return; //don't write anything between these two lines, previously I got this error, because I put a log out.
Camera.Parameters lParameters = mCamera.getParameters();

【讨论】:

    【解决方案2】:

    我只是得到一个和你一样的问题。我检查了它,发现相机被调用了 unlock() 所以我在getParameter之前添加lock()并在setParameter之后添加unlock()。希望它可以帮助你!

    //there is neeed try catch block
    if(mMediaRecorder == null) {
                mCamera.lock();
                mParameters = mCamera.getParameters();
            }else {
                mParameters = mCamera.getParameters();
            }
    
    if(mParameters != null && mCamera != null){
        final String mode = mParameters.getFlashMode();
        try{
            if (TextUtils.isEmpty(mode) || Camera.Parameters.FLASH_MODE_OFF.equals(mode))
            {
                mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            }else {
                mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            }
            mCamera.setParameters(mParameters);
        }catch(Exception ex) {
            ex.printStackTrace();
        }finally {
            try{
                mCamera.unlock();
            }catch(Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-18
      • 2016-02-08
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多