我正在OutOfMemoryError
用Bitmap
从Camera
. 我的代码运行良好几次,直到我得到异常,所以我花了几个小时寻找内存泄漏。
奇怪的是,我将代码追溯到我PictureCallback
只是为了检查字节数组的大小:当没有抛出异常时,它大约是 280k,但最终,我收到了一个超过 1.2M 的字节数组,这就是 decodeByteArray 崩溃的时候。
我正在使用自定义CameraActivity
. 初始化代码Camera
如下所示
camera = Camera.open();
camera.setDisplayOrientation(cameraOrientation);
Camera.Parameters params = camera.getParameters();
Size size = getPreferredPictureSize();
params.setPictureSize(size.width, size.height);
params.setJpegQuality(JPEG_QUALITY);
params.setPictureFormat(ImageFormat.JPEG);
camera.stopPreview();
camera.setParameters(params);
camera.startPreview();
当我暂停时,我像这样CameraActivity
释放 deCamera
if (camera != null) {
camera.stopPreview();
camera.release();
camera = null;
}
为什么在相同的初始化条件下返回的图片可以有如此不同的大小?我可以错过一些完全释放这些Camera
东西的方法吗?任何线索表示赞赏:)