Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

Zxing是谷歌开发的一款条码扫描工具,可以进行条形码和二维码扫描识别。一般我们在项目中使用的时候,都是直接添加依赖。网上用的最多就是一个叫zxing-android-embedded的第三方zxing依赖库,直接添加依赖。例如
compile 'com.journeyapps:zxing-android-embedded:3.5.0'

关于这个第三方依赖库怎么使用就不啰嗦了,网上相关文章一大推。本篇博客主要讲一下怎么在android studio中本地集成zxing库,并将集成的zxing库作为依赖工程库导入,以及一些注意事项。

集成步骤如下:

1、首先去github下载整个zxing项目,地址:https://github.com/zxing/zxing

在分支里面选择tag,这里选择3.3.2最新版,

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

选择右边的clone or download箭头1所指。

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

箭头2所指就是克隆地址,这里可直接在as里面克隆,也可以新建一个文件夹,用TortoiseGit工具去克隆到本地。

箭头3直接下载整个项目的压缩包,这里我选择的是直接下载压缩包,为了方便接下来的集成。

2.下载zxing的核心jar包。地址:

http://repo1.maven.org/maven2/com/google/zxing/core/

这里选择一定要下载同一个版本的,不然可能更新了的内部方法无法识别,以及一些其他的冲突等等。

这里我们选择3.3.2

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

3、在AS里面打开zxing的安卓demo。

解压我们刚刚下载的zxing项目,可以看到里面有个android的文件夹,这里面就是我们需要的demo了。直接在as里面导入这个工程。编译结束会看到项目一片爆红,不要着急,这个时候将我们之前下载的core-3.3.3.jar复制到demo的libs下面。(一般这个libs文件是没有的,这里我们将项目切换到project模式下,然后新建一个libs文件夹。)右键选中jar,将jar导入工程。

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

这个时候报红的地方就减少了一大片了。然后会发现,提示我们有一个叫CameraConfigurationUtils的类找不到,这个时候我们到下载的工程里面,一个叫android-core文件夹里面,将这个类复制到demo工程的com.google.zxing.client.android/camera中 。这个时候再编译一下,就可以生成apk并且运行了。

4、将集成好的工程,作为依赖工程,导入到我们实际项目工程中。

在项目工程中,选择file-->new-->import module。选择我们集成的zxing工程。

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

注意红色箭头处,将导入的module改个名字,因为默认都叫app,有可能和我们自己的工程冲突。点击确定等待导入完成。

可以看到这里已经有了我们刚刚导入的工程了,

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

5、将整个导入的zxing工程作为依赖工程。

点击file-->project structure-->app-->dependencies-->加号-->module deependencies

Android Studio本地集成zxing依赖库步骤详解,以及可能会遇到的问题的解决办法

选中我们导入的module,点击ok。这个时候有可能会报mainfest合并失败的错误。

6、解决合并冲突。

打开zxing的build.gradle。将上面的application改成library,并且删掉applicationId这栏。

在我们自己的项目工程的mainfest加上这句标签 xmlns:tools="http://schemas.android.com/tools"

在application里面加上这句  

 tools:replace="icon,label"

有可能不止这两个冲突,theme和logo等等也可能会冲突,这里可以根据log提示加。

注1:zxing里面添加了的权限,如果我们自己的项目中也有,需要删掉zxing里面的权限,不然也会冲突。

注2:zxing里面有第一启动页面, <intent-filter>
                       <action android:name="android.intent.action.MAIN" />
                       <category android:name="android.intent.category.LAUNCHER" />

               </intent-filter>需要删掉这几句代码。不然运行会出现两个app。

好了,本篇博客就到这里了,如果正好对你有帮助,可以给博主点个赞哦。

下一篇博客将介绍集成后如何使用以及自定义的扫码页面。