bug修复之takePicture failed

本文介绍了一个出现在Android应用程序中的常见拍照Bug及其解决方案。该Bug表现为在重复点击拍照按钮时出现异常,通过添加一个布尔变量来控制拍照操作的时机,有效地解决了这一问题。

友盟日志如下:

java.lang.RuntimeException: takePicture failed
    at android.hardware.Camera.native_takePicture(Native Method)
    at android.hardware.Camera.takePicture(Camera.java:1872)
    at android.hardware.Camera.takePicture(Camera.java:1817)
    at com.xxxx.xxxx.xxxx.CameraActivity.onClick(SourceFile:127)
    at android.view.View.performClick(View.java:4909)
    at android.view.View$PerformClick.run(View.java:20390)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:192)
    at android.app.ActivityThread.main(ActivityThread.java:5878)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1089)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:855)

复现原因:拍照按钮被重复点击时会出现这个bug。
修复:申明一个boolean变量

private boolean safeToTakePicture = false;

在startPreview之后safeToTakePicture = true;
在拍照点击事件中

if (safeToTakePicture) { 
  camera.takePicture(null, null, mPicture); 
  safeToTakePicture = false;
}

在PictureCallback回调方法中的,safeToTakePicture = true;



作者:shada
链接:http://www.jianshu.com/p/d750ed066862
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值