我从这里的答案中复制了代码,但我仍然得到一个RuntimeException:我的nexus上的setParameters失败错误.我的清单文件具有camera和wake_lock权限.这适用于模拟器,在机器人上我没有得到错误但它确实有旋转问题.
您最有可能要求无效的预览尺寸.如果你检查结果adb logcat
你可能会看到这样的事情:
E/QualcommCameraHardware(22732): Invalid preview size requested: 480x724
解决方案是请求最接近的预览尺寸到您想要的尺寸; 您可以通过调用获得预览可用尺寸的列表getSupportedPreviewSizes
中Camera.Parameters对象通过返回Camera.getParameters.
我通过做罗马所说的代码来纠正这个问题:
Camera.Parameters parameters = camera.getParameters(); Listsizes = parameters.getSupportedPreviewSizes(); Camera.Size cs = sizes.get(0); parameters.setPreviewSize(cs.width, cs.height); camera.setParameters(parameters);
对于它的价值,我的问题的根源是我试图打电话parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
而没有先通过检查确认支持闪存模式parameters.getFlashMode() != null
.
这个记录不完整的异常的原因不止一个,所以检查所有参数,而不仅仅是你正在使用的supportedPreviewSize
.