这应该是最简洁的Android UVC Camera库了

一、快速点击拍照按钮闪退

修改UVCButtonCallback.cpp文件里的uvc_button_callback方法

修改前:

void UVCButtonCallback::uvc_button_callback(int button, int state, void *user_ptr) {UVCButtonCallback *buttonCallback = reinterpret_cast<UVCButtonCallback *>(user_ptr);JavaVM *vm = getVM();JNIEnv *env;// attach to JavaVMvm->AttachCurrentThread(&env, NULL);buttonCallback->notifyButtonCallback(env, button, state);vm->DetachCurrentThread();
}

修改后:

void UVCButtonCallback::uvc_button_callback(int button, int state, void *user_ptr) {UVCButtonCallback *buttonCallback = reinterpret_cast<UVCButtonCallback *>(user_ptr);JavaVM *vm = getVM();JNIEnv *env;bool isAttached = false;int status = vm->GetEnv((void**)&env, JNI_VERSION_1_6);if (status < 0) {// attach to JavaVMif (vm->AttachCurrentThread(&env, NULL)) {return;}isAttached = true;}buttonCallback->notifyButtonCallback(env, button, state);if (isAttached) {vm->DetachCurrentThread();}
}

二、拔出设备闪退

2.1 修改android_usbfs.c和linux_usbfs.c文件里的handle_iso_completion方法


增加判空逻辑:

    if (tpriv->iso_urbs == NULL) {break;}

2.2 修改stream.c文件里的_uvc_delete_transfer方法


注释掉:

    //libusb_free_transfer(transfer);

三、预览偶现闪退

3.1 修改UVCPreview.h文件

    volatile bool mHasCaptureThread;

3.2 修改UVCPreview.cpp文件

**do_preview: **

    mHasCaptureThread = false;if (LIKELY(!result)) {clearPreviewFrame();if (pthread_create(&capture_thread, NULL, capture_thread_func, (void *)this) == 0) {mHasCaptureThread = true;}

do_capture_callback:

    if (iframecallback_fields.onFrame) {env->CallVoidMethod(mFrameCallbackObj, iframecallback_fields.onFrame, buf);}

stopPreview:

    if (mHasCaptureThread) {pthread_cond_signal(&capture_sync);if (pthread_join(capture_thread, NULL) != EXIT_SUCCESS) {LOGW("UVCPreview::terminate capture thread: pthread_join failed");}}

最全Android UVC Camera 闪退问题修复相关推荐

  1. 解决Xamarin Android SDK Manager闪退问题

    解决Xamarin Android SDK Manager闪退问题 SDK Manager闪退是因为它找不到java.exe导致的.SDK Manager默认是通过读取注册表中JDK安装信息来java ...

  2. android 签名包闪退,解决APP连续闪退的方案,你还不知道的签名方式

    原标题:解决APP连续闪退的方案,你还不知道的签名方式 用户在使用APP检测到连续闪退后,接下来要尝试对闪退进行修复,这里先分析可能的闪退原因: 闪退原因 连续闪退,可能是 App 启动关键路径中执行 ...

  3. mac 有道云词典闪退问题修复

    mac 有道云词典闪退问题修复 其实超级简单: 打开系统偏好设置,点击语言和地区 点击app,点击+号 选择英语,点击添加 4.现在你就可以打开App了,你试试,你品,你细品!!!

  4. 全国计算机二级qq闪退,电脑QQ闪退怎么回事_qq闪退的修复办法

    在使用qq聊天时遇到软件总是自动闪退,打开又退,电脑QQ闪退怎么回事?qq闪退的修复办法有哪些呢?今天就由学习啦小编教大家解决这个问题!希望可以帮到大家! 电脑qq闪退的原因 是Win7系统 的权限设 ...

  5. Mac Eclipse上Android SDK manager闪退的问题!!

    最近想自学一下Android,也没啥人指导,安装的过程中就花了一整天....安装完ADT,安装完SDK,所有步骤都照着网上来,可是一打开SDK manager就闪退!网上所有方法都找了,可是几乎全是w ...

  6. android集成flutter闪退,flutter v1.12.13+hotfix.5 华为畅想9闪退

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 跪求解决方案!!! 机型:华为畅想9 操作系统:安卓8.2.0 flutter_sdk :v1.12.13+hotfix.5 webview_flutte ...

  7. android authtype=1,【报Bug】plus.screen.lockOrientation在android里引起闪退

    代码逻辑如下: 1,在未登录状态下,通过其他接口的状态码判断登录状态,在初次未登录状态下跳转登录页(reLaunch跳转VUE页面) skipSp(x){ if(this.loginStatus == ...

  8. android实机闪退,安卓模拟器,安卓真机,进入播放界面就会闪退

    当我程序运行到下面这一步的时候,会报错,并且程序闪退,注释掉就不会闪退了. playerController?.initialize()?.then((_) { if (mounted) setSta ...

  9. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

  10. android 8.1闪退,宁波市民卡app在Android 8.1闪退_宁波民生e点通

    fz021012252018-07-23 08:18:21 小米6,安卓8.1原生系统.使用Android studio虚拟机同样闪退. 闪退日志 BOARD=msm8998 CPU_ABI2= HO ...

最新文章

  1. 你的大脑在自动驾驶,而你一无所知
  2. 跟小静读CLR via C#(05)- 访问限定、数据成员
  3. SQL Server 2012 AlwaysOn高可用配置之八:新建可用性组
  4. (Oracle学习笔记) Oracle体系结构
  5. 排序算法——各算法性能
  6. Java编程程序异常处理方法
  7. Oracle - 新装数据库、新建用户注意事项
  8. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构
  9. Python+os+openpyxl 批量获取Excel的文件名和最大行数
  10. 二十六. Python基础(26)--类的内置特殊属性和方法
  11. 在Ubuntu中安装以theano作为backend的keras
  12. linux映射80端口,Linux下访问默认80端口 映射到8080端口
  13. 基于Springboot实现英语在线学习系统
  14. QT中事件及事件处理
  15. 计算机毕业设计-基于神经网络APP-整合Vue+SpringBoot+TensorFlow框架-诗联AI
  16. elasticsearch 分片(Shards)的理解
  17. 批量修改文件夹或文件名称
  18. 现代企业管理——【ERP管理】
  19. 人脸识别(1:N)和人脸验证(1:1)
  20. 圆满收官!2022 秋招总结与建议

热门文章

  1. MATLAB常用正则表达式记录
  2. 信号完整性分析学习--16--传输线效应
  3. Web安全 Msfconsole攻击技术(成功拿下服务器最高权限.)
  4. 医疗服务机器人市场复合年增长率将达15.7%
  5. 红外接收管硬件电路曲折的调试过程,错误的使用过程记录
  6. python批量下载抖音视频_Python一键批量下载抖音无水印视频
  7. 清明上河图密码2笔记
  8. 欧几里得算法和扩展欧几里得算法
  9. SWEBOK软件工程知识体系 - 7.软件工程管理
  10. Java中关于二叉树详解