android项目内导入zxing库亲测有效
第一篇博客,虽然有点羞涩但是确实还是想记录一下学习zxing导入的使用方法,简单实现一下生成二维码与扫描二维码的功能,后期会继续出生成二维码与扫描二维码的文章,刚开始接触网上的很多博客找了好像用处都不大,亲测有效吧。新手勿喷。 这里将github zxing的链接放在下面: https://github.com/zxing/zxing
1.将github内的android包import model
2.导入zxing包内的android库
3.在zxing的build包内导入zxing依赖包。 implementation ‘com.google.zxing:zxing-parent:3.4.1’ implementation ‘com.google.zxing:core:3.3.3’
4.zxing android包内缺少CameraConfigurationUtils,在zxing camera文件夹下
文件在android-core文件夹内。
5.导入后要记得将导入的包作为库进行使用修改方法如下: 将plugin修改为”com.android.library”
最后再次在open model setting内选择app导入添加model dependency导入zxing:
导入成功后编译会报:
不用担心,根据提示点击进去你会发现所有报错的地方都有一个共同点,那就是都用了switch语句,然后你要做的就是将所有的switch语句换成if语句就可以,这是因为对比普通工程和Library工程的R文件发现,Library工程的R文件常量缺少final。由于Library工程的可以包含资源文件,编译会生成R文件,多个Library中可能出现id冲突的问题。为了解决这个问题谷歌将Library工程R文件才从静态常量变为非常量。然而switch语句的case中 必须是常量,而此时的R.id.xxx为非常量,所以报错了。按照提示修改成功后写一个button.就可以成功运行起来了。
但启动后是横屏,将扫码界面修改为竖屏。修改: android:screenOrientation=“sensorPortrait”
若遇到以下问题则: 改完所有的switch语句之后,运行还是会发现一个错误,如下图:
这个不用担心非常好改,将ArrayList中的类型补全就好了。如下图:
至此zxing就导入到你的项目中去了,在自己的应用中启动CaptureActivity就可以进行扫描了。 至此文件将会运行成功。同时记得在导入文件的同时要修改版本号和zxing文件mainferst文件的label标签木得是为了不要让原本自身的App图标与导入的图标冲突
|