最全Android UVC Camera 闪退问题修复
这应该是最简洁的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 闪退问题修复相关推荐
- 解决Xamarin Android SDK Manager闪退问题
解决Xamarin Android SDK Manager闪退问题 SDK Manager闪退是因为它找不到java.exe导致的.SDK Manager默认是通过读取注册表中JDK安装信息来java ...
- android 签名包闪退,解决APP连续闪退的方案,你还不知道的签名方式
原标题:解决APP连续闪退的方案,你还不知道的签名方式 用户在使用APP检测到连续闪退后,接下来要尝试对闪退进行修复,这里先分析可能的闪退原因: 闪退原因 连续闪退,可能是 App 启动关键路径中执行 ...
- mac 有道云词典闪退问题修复
mac 有道云词典闪退问题修复 其实超级简单: 打开系统偏好设置,点击语言和地区 点击app,点击+号 选择英语,点击添加 4.现在你就可以打开App了,你试试,你品,你细品!!!
- 全国计算机二级qq闪退,电脑QQ闪退怎么回事_qq闪退的修复办法
在使用qq聊天时遇到软件总是自动闪退,打开又退,电脑QQ闪退怎么回事?qq闪退的修复办法有哪些呢?今天就由学习啦小编教大家解决这个问题!希望可以帮到大家! 电脑qq闪退的原因 是Win7系统 的权限设 ...
- Mac Eclipse上Android SDK manager闪退的问题!!
最近想自学一下Android,也没啥人指导,安装的过程中就花了一整天....安装完ADT,安装完SDK,所有步骤都照着网上来,可是一打开SDK manager就闪退!网上所有方法都找了,可是几乎全是w ...
- android集成flutter闪退,flutter v1.12.13+hotfix.5 华为畅想9闪退
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 跪求解决方案!!! 机型:华为畅想9 操作系统:安卓8.2.0 flutter_sdk :v1.12.13+hotfix.5 webview_flutte ...
- android authtype=1,【报Bug】plus.screen.lockOrientation在android里引起闪退
代码逻辑如下: 1,在未登录状态下,通过其他接口的状态码判断登录状态,在初次未登录状态下跳转登录页(reLaunch跳转VUE页面) skipSp(x){ if(this.loginStatus == ...
- android实机闪退,安卓模拟器,安卓真机,进入播放界面就会闪退
当我程序运行到下面这一步的时候,会报错,并且程序闪退,注释掉就不会闪退了. playerController?.initialize()?.then((_) { if (mounted) setSta ...
- android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...
使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...
- android 8.1闪退,宁波市民卡app在Android 8.1闪退_宁波民生e点通
fz021012252018-07-23 08:18:21 小米6,安卓8.1原生系统.使用Android studio虚拟机同样闪退. 闪退日志 BOARD=msm8998 CPU_ABI2= HO ...
最新文章
- 你的大脑在自动驾驶,而你一无所知
- 跟小静读CLR via C#(05)- 访问限定、数据成员
- SQL Server 2012 AlwaysOn高可用配置之八:新建可用性组
- (Oracle学习笔记) Oracle体系结构
- 排序算法——各算法性能
- Java编程程序异常处理方法
- Oracle - 新装数据库、新建用户注意事项
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节4:I/O软件层次结构
- Python+os+openpyxl 批量获取Excel的文件名和最大行数
- 二十六. Python基础(26)--类的内置特殊属性和方法
- 在Ubuntu中安装以theano作为backend的keras
- linux映射80端口,Linux下访问默认80端口 映射到8080端口
- 基于Springboot实现英语在线学习系统
- QT中事件及事件处理
- 计算机毕业设计-基于神经网络APP-整合Vue+SpringBoot+TensorFlow框架-诗联AI
- elasticsearch 分片(Shards)的理解
- 批量修改文件夹或文件名称
- 现代企业管理——【ERP管理】
- 人脸识别(1:N)和人脸验证(1:1)
- 圆满收官!2022 秋招总结与建议