整合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相机出现问题,您可能需要重新启动设备。
哪位哥们做过二维码扫描这块遇到过这个问题,拜托了。
...全文
2346 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
没做过这块,友情帮顶

51,397

社区成员

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

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