【发布时间】:2012-09-24 06:50:05
【问题描述】:
在使用 Galaxy nexus 进行测试时,我的相机应用程序出现了一个奇怪的问题。它在尝试启动相机活动时简单地崩溃了。但它几乎适用于所有其他设备。 这些是我的功能.....
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
try {
camera = Camera.open();
camera.setPreviewDisplay(holder);
Camera.Parameters parameters = camera.getParameters();
if (Integer.parseInt(Build.VERSION.SDK) >= 8)
setDisplayOrientation(camera, 90);
else
parameters.set("orientation", "portrait");
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
if(previewing){
camera.stopPreview();
previewing = false;
}
if (camera != null){
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
previewing = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
谁能帮忙 我?
【问题讨论】:
-
把 Exception/Crash logcat 也放上去。
-
@AdilSoomro 抱歉..不幸的是我现在没有它..我也没有 nexus 手机..
-
可能是因为您正在surfaceChanged 中启动和停止相机。最好在 onResume() 中启动Preview 并在 onPause() 中停止Preview。它适用于我在 Galaxy Nexus 上的应用程序。
-
还有一件事是,我在我的清单文件中添加了“targetSDKVersion=15”..我的清单中的活动声明中还有一个声明“android:configChanges”为“android:configChanges= "keyboardHidden|orientation|screenLayout""..这里有什么问题吗?
-
不,这不会影响。对于 ScreenLayout,我不确定,但对于其他选项(键盘隐藏|方向),因为我也在清单中使用了这些选项......