Android Studio可以用两种方法实现Zxing的导入,

第一种方法:直接implementation

在需要使用zxing进行二维码扫描的app的build.gradle直接添加依赖:

implementation 'com.journeyapps:zxing-android-embedded:2.3.0@aar'implementation  'com.journeyapps:zxing-android-legacy:2.3.0@aar'implementation  'com.journeyapps:zxing-android-integration:2.3.0@aar'implementation  'com.google.zxing:core:3.2.0'

其实可以添加成com.google.zxing:core:x.x.x的形成,AS会自动搜索最新版本,帮助我们修改成最新版的

然后使用startActivityForResult的方法就可以启动了

Intent intent = new Intent(getApplicationContext(),CaptureActivity.class);intent.setAction("com.google.zxing.client.android.SCAN");intent.putExtra("SAVE_HISTORY", false);startActivityForResult(intent, 0);

但是,这样启动的CaptureActivity界面是横屏的,也不能修改扫描界面,所以很难满足我们的需求。

第二种方法:添加外部依赖项目

1) 下载Zxing源码

下载地址见 https://github.com/zxing/zxing/ 这是一个Google官方维护的项目,支持很多语言和多种使用环境,我们只需要下载android相关的就可以,

2) 导入外部依赖项目

在project视图下,右键项目名, 选择New>Module>Import Gradle Project.然后选择下载的android文件夹。注意,此时可以给导入的外部项目修改名字,可能是官方考虑到要导入多个项目时避免名字冲突吧,我改成zxing了。

3) 添加core库

这里其实有两种方法,一是可以直接下载core-x.x.x.jar (),在外部项目中新建Libs文件夹,拷贝进去,然后add as a dependency,但是这样的很容易出错,推荐第二种

二是可以在导入的android外部项目的build,gradle中添加外部依赖 compile ‘com.google.zxing:core:x.x.x’

4) 修改外部导入项目的属性

将 ‘com.android.application’ 改成: ‘com.android.library’ 告诉系统这个是library.
删掉 applicationId 声明.
将SdkVersion和buildToolVersion修改成跟当前app一致

5) 修改导入项目的manifest.xml,

将 删去category android:name=“android.intent.category.LAUNCHER”

6) 添加对导入项目的依赖

在app下面的build.gradle文件中的依赖中添加
implementation project(’:zxing’)
告诉系统要一起编译这个外部项目

3 添加外部项目时的常见错误

1、 常量表达式错误
在修改完build文件后,报了一个常量表达式错误的问题,发现是在各个switch语句那里,Alt+Enter 将switch case 语句改为 if else.
原因:避免多个库之间出现资源冲突 (具体可以去查阅)
2、找不到合适的匹配器
错误:对于ArrayAdapter(Context, int, ArrayList),找不到合适的构造器

看报错的最后一行,说ArrayList 无法转换成List
这是因为 文件中ArrayList<>没有指定变量类型,改为ArrayList 即可

3、找不到getStartTimeStamp(),改成getStart().getTime()即可,后者是long类型,对于getEnd()也一样

最后,改成竖屏

在manifest里修改(CaptureActivity就是要调用的类),sensorPortrait即可

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  3. Android(安卓)Hello Word
  4. Android(安卓)HttpPost表单访问接口
  5. eclipse3.7 INDIGO安装adt 缺少条目时的解决办法
  6. android枚举的替代(官方建议)
  7. 圆形ImageView
  8. Android(安卓)Studio gradle配置实践
  9. OpenCV4Android(安卓)不需要安装OpenCVManager,就可以运行的方法

随机推荐

  1. Android(安卓)SDK Manager连不上Google服
  2. Android23-视图坐标系以及MotionEvent事
  3. android给Button或TextView等设置字体
  4. Android(安卓)环境建立
  5. Android 登陆、提交数据或者加载数据时提
  6. Android中广告条轮播(Banner)的实现
  7. Android N for Developers(API概览)
  8. Android ApiDemos示例解析(95):Views->An
  9. Android开发:shape和selector和layer-list
  10. Android Service进程间双向通信之Messeng