整合Zxing条码扫描器到自己的项目,提示android相机出现问题,您可能需要重启设备

tintick 2012-06-05 10:15:12
之前将Zxing项目的精简版集成到项目里了,但是明显的扫描速度不如google提供的条码扫描器快,而且有些qrcode还无法解码。于是想将整个Zxing全部集成到项目里。但是遇到了问题:
我在menifest文件中这样配置:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.qm.ui"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />

<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>



<activity android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>





报错如下:


01-21 05:43:57.507: W/CaptureActivity(16819): Unexpected error initializing camera
01-21 05:43:57.507: W/CaptureActivity(16819): java.lang.RuntimeException: Fail to connect to camera service
01-21 05:43:57.507: W/CaptureActivity(16819): at android.hardware.Camera.native_setup(Native Method)
01-21 05:43:57.507: W/CaptureActivity(16819): at android.hardware.Camera.<init>(Camera.java:120)
01-21 05:43:57.507: W/CaptureActivity(16819): at android.hardware.Camera.open(Camera.java:97)
01-21 05:43:57.507: W/CaptureActivity(16819): at com.google.zxing.client.android.camera.CameraManager.openDriver(CameraManager.java:102)
01-21 05:43:57.507: W/CaptureActivity(16819): at com.google.zxing.client.android.CaptureActivity.initCamera(CaptureActivity.java:739)
01-21 05:43:57.507: W/CaptureActivity(16819): at com.google.zxing.client.android.CaptureActivity.surfaceCreated(CaptureActivity.java:433)




手机提示:抱歉android相机出现问题,您可能需要重新启动设备。
哪位哥们做过二维码扫描这块遇到过这个问题,拜托了。
...全文
2272 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ManzoShen 2014-09-15
  • 打赏
  • 举报
回复
这个跟初始化有鸡毛的关系。 rom的问题,不用纠结了。 这个地方先进入public void surfaceCreated(SurfaceHolder holder) { if(isSurfaceCreated){ return; } isSurfaceCreated = true; if (!hasSurface) { hasSurface = true; initCamera(holder, surfaceView); } } 的initCamera方法 然后进到该方法里的CameraManager.get().openDriver(surfaceHolder, surfaceView); 看log,是到camera.open的时候报的runtimeException,而不是IOException。再看log提示的是native 方法错误。也就是说初始化相机的系统方法出现了运行时异常。这个多半是rom跟硬件相机的接口搞的不好。现在android的rom五花八门的,各种厂家乱改rom。而改这些rom的还有好多二把刀。胡乱整,搞得出问题。
kk1924 2014-02-25
  • 打赏
  • 举报
回复
不知楼主解决了没?
rekym 2012-06-08
  • 打赏
  • 举报
回复
LZ 你权限加了没有...

<uses-permission android:name="android.permission.CAMERA" />  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
plplum 2012-06-05
  • 打赏
  • 举报
回复
没做过这块,友情帮顶
    本课程分享对由中国开发者提供的OpenCV条形码识别模块的原理和代码精讲。该模块借鉴“目标识别”领域先进理念,采用“定位-识别”二段模式,有效提高了自然环境下条码识别的准确率并保持了C++代码的高速度,相比较常用的zxing和zbar在准确率和识别速度上均有较大优势。更难得可贵的是在代码的实现过程中能够注意细节,在诸如“循环测试确定参数数值”“积分图的使用”“倾斜矩形纠偏”等处,均提供了思路清晰、弹性高的优质代码。作为一套通过了OpenCV官方的代码检验、解决一个常用领域内具体问题的模块,对于图像处理学习来说是难得可贵的。    逐条进行代码解读繁琐且低效,个人认为,在图像处理领域,能够运行和修改观察的代码对于学习研究至关重要。在理论剖析部分,也是由应用引导原理。同时做好知识的迁移和代码的复用工作。在这个过程中,创建针对性的实验非常重要。 课程内容分为4个部分:一是基本配置,包括· 条形码识别模块的安装使用 (cmake配置和OpenCV编译);· 构建用于测试和代码阅读的环境;· 模块对官方数据集的测试;二是条码定位,将详细讲解思路、原理和实现知识迁移部分将简单说一下在毛发识别上的迁移:三是条码识别,该部分内容会首先梳理框架,而后具体进行分析讲解    此外,我们将结合例子,将OpenCV的基础功能,包括积分图像、形态学变化、联通区域、透视变化等进行复习,加深理解。 

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧