【发布时间】:2017-02-27 13:54:10
【问题描述】:
在我更换设备后,我的相机突然停止工作并扔掉一个
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()'
我曾尝试将我的 catch (RuntimeException ex) 更改为 finaly
但那反而给了我一个
连接相机服务失败”异常
public void surfaceCreated(SurfaceHolder surfaceHolder) {
String PreviewFPS;
String Previewsize;
String Displayor;
PreviewFPS = setingPreferences.getString("previewfps", "");
Previewsize = setingPreferences.getString("screensize", "");
Displayor = setingPreferences.getString("orientation", "");
String[] size = Previewsize.split(",");
try {
camera = Camera.open();
} catch (RuntimeException ex) {
}
Camera.Parameters parameters;
parameters = camera.getParameters();
//modificer parameterene
parameters.setPreviewFrameRate(Integer.parseInt(PreviewFPS));
parameters.setPreviewSize(Integer.parseInt(size[0]),Integer.parseInt(size[1]));
camera.setParameters(parameters);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
camera.setDisplayOrientation(Integer.parseInt(Displayor));
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
} catch (Exception ex) {
}
}
清单
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
设备制造商调查了代码并告诉我原因是它无法同时运行扫描仪和摄像头
嗨,凯文 你能把源代码分享给我吗?因为我们还没有测试它是否可以同时运行相机和扫描仪
我们检查了,扫描仪和相机不能同时打开。 最好的问候,
所以我的解决方法是让我的相机和扫描仪活动在 2 个单独的活动和布局中运行,希望这对其他人有帮助
【问题讨论】:
-
尝试 { camera = Camera.open(); } catch (RuntimeException ex) { ex.printStackTrace(); } 检查输出日志
-
它不应该修复错误,它应该显示错误日志
-
那不是解决方案。它会打印为什么相机没有初始化的日志。由于这里的异常相机仍然为空
-
您是否为相机添加了权限或运行时权限(>=M)
-
给我们相机对象定义。显然你没有正确初始化它。
标签: android parameters nullpointerexception android-camera