错误堆栈:

    --------- beginning of crash2020-09-14 13:43:51.723 10343-10343/com.xiaomi.micolauncher E/AndroidRuntime: FATAL EXCEPTION: main    Process: com.xiaomi.micolauncher, PID: 10343    java.lang.RuntimeException: takePicture failed        at android.hardware.Camera.native_takePicture(Native Method)        at android.hardware.Camera.takePicture(Camera.java:1573)        at android.hardware.Camera.takePicture(Camera.java:1515)        at com.xiaomi.refrigerator.scan.ScanActivity.onClick(ScanActivity.java:286)        at android.view.View.performClick(View.java:6610)        at android.view.View.performClickInternal(View.java:6583)        at android.view.View.access$3100(View.java:780)        at android.view.View$PerformClick.run(View.java:26076)        at android.os.Handler.handleCallback(Handler.java:873)        at android.os.Handler.dispatchMessage(Handler.java:99)        at android.os.Looper.loop(Looper.java:209)        at android.app.ActivityThread.main(ActivityThread.java:6702)        at java.lang.reflect.Method.invoke(Native Method)        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)

问题原因:

因为调用takepic 之后,相机默认会关闭preview,你需要调用startPreview,然后才能调用takePic.

我这里是快速双击拍照Button 导致调用两次takepic 导致崩溃。

增加了一个变量,表示当前是不是调用了takePic。

    private boolean mHasTakePicture = false;                getCamera().takePicture(null, null, new Camera.PictureCallback() {                         @Override                    public void onPictureTaken(byte[] data, Camera camera) {                                                     mHasTakePicture = false;                    }                });

然后在callback 里面 重置mHasTakePicture

更多相关文章

  1. Android手电筒小程序实现代码
  2. Android在自己的程序中调用外部程序
  3. Android(安卓)Service分析
  4. android定制对话框
  5. Android(安卓)判断程序是否在前台运行
  6. Android(安卓)中实现FlowLayout 布局
  7. android APP响应H5页面的点击事件(JS交互)
  8. Android(安卓)DOC文档分析——Dialog
  9. Android消息处理机制1——Handler

随机推荐

  1. Android应用开发提高系列——Android动态
  2. [Flutter] Flutter之Android开发者教程(
  3. Android(安卓)SimpleAdapter ViewBinder
  4. 利用convertView优化ListView性能
  5. Linux Ubuntu下用Android(安卓)NDK 生成
  6. 初学者做android 第一个小程序
  7. Android4.1.1下关于采用File.createTempF
  8. 关于Static interface methods are only
  9. Android(安卓)自定义ViewGroup 实战篇 ->
  10. 关于android消息处理的个人理解