Android二维码识别 开源项目ZXing的编译
Android二维码识别 开源项目ZXing的编译
Android端的条形码/二维码识别功能
因为手机端的输入不是很方便,所以条形码/二维码的扫描是一种很有效的解决手段。
比较流行的手机应用中,常用的二维码扫描实现,是使用了开源库——ZXing:http://code.google.com/p/zxing/
据项目主页的介绍,这个开源项目是用Java实现的,用手机自带的摄像头,扫描条形码/二维码,不需要和服务器通信(当然这个项目也可以用于PC和服务器),就可以做一维或二维码的识别。
支持的各种码格式很多:
下面就介绍一下如何编译运行这个项目。
下载项目
去http://code.google.com/p/zxing/downloads/list下载最新的项目:命名是ZXing-x.y.zip
目前(2013.08.29)最新的版本号是2.2:
即 ZXing-2.2.zip:http://code.google.com/p/zxing/downloads/detail?name=ZXing-2.2.zip&can=2&q=
下载后,解压得到的目录如下:
我们其实只用到了android和core两个目录。
直接使用编译好的Jar包
根据http://code.google.com/p/zxing/wiki/GettingStarted
上说的,如果你想直接使用编译好的jar包,那么直接去:http://repo1.maven.org/maven2/com/google/zxing/ 下载jar包即可。
我们这里需要的是core下的jar包。下载core-2.2.jar即可。
然后,在Eclipse中,导入zxing-2.2\android下的项目,导入后会有一些错误。
新建libs目录,将刚才下载的core-2.2.jar拷贝进去,错误就都消失了。
然后就直接右键项目Run即可。
如果想自己编译,也算是很方便。下面讲讲。
编译工具准备
首先得准备两个工具:
Maven: http://maven.apache.org/
下载链接:
Ant: http://ant.apache.org/bindownload.cgi
Maven: http://maven.apache.org/download.cgi
下载后放在合适的路径下解压缩,然后将bin目录添加到环境变量Path中即可。两个都是。
可以在cmd中查看版本号来验证配置是否成功:
手动编译的配置
首先,从命令行进入到zxing-2.2目录下:
输入如下命令:
android update project --path android
成功后就可以看到zxing-2.2\android目录下新增了一个名为local.properties的文件,里面内容是:sdk.dir=你的Android SDK目录。
编译Jar包
首先编译core,方法如下:
命令行进入到zxing-2.2\core路径下,输入命令:
mvn -DskipTests -Dgpg.skip=true install
运行完之后core目录下会生成一个target目录。
里面就有编译好的各种东西,包括文档、需要的Jar包等(比如我的这个叫core-2.3-SNAPSHOT.jar)。
编译Android项目
首先,把刚才生成的jar包(core-2.3-SNAPSHOT.jar)拷贝进zxing-2.2\android目录下的libs目录。
然后,命令行进入到zxing-2.2\android路径下,输入命令:
ant debug
生成的bin目录下就包含了.apk。
(如果关联了360手机助手或者豌豆荚,USB连接手机后,双击这个.apk即可安装应用,因为是debug版的,所以会提示是山寨应用。)
当然,也可以将Android程序导入Eclipse,libs中添加Jar包之后右键项目来编译和运行,如前所述。
参考资料
ZXing项目地址:
http://code.google.com/p/zxing/
GettingStarted:
http://code.google.com/p/zxing/wiki/GettingStarted
博客:
http://www.cnblogs.com/keyindex/archive/2011/06/08/2074900.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了