IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android实现一维二维码扫描生成功能(一)-zxing导入现有项目 -> 正文阅读

[移动开发]Android实现一维二维码扫描生成功能(一)-zxing导入现有项目

前言

目前二维码扫描功能很流行也非常成熟了,而zxing项目也是目前可以说是最流行的二维码扫描方面的开源项目很多大神都对zxing进行了封装,github上也有很多好用的二维码开源库,但是我更喜欢原版的zxing开源库,而原版zxing导入比较麻烦,很多新人要导入很久,关键是还不一定导入的对。我在网上搜索了很久也没有一篇完整的可参考文章。下面总结导入方式,希望对大家有所帮助。

一、下载zxing源码

????????1.zxing开源地址:https://github.com/zxing/zxing

笔者当前操作zxing版本为zxing-3.5.1

????????2.下载zip源码

图1

????????3.解压zip

图2

我们只关注其中的androidandroid-core两个文件夹

二、在现有项目创建文件夹及文件复制

? ? ? ? 1.文件夹创建

在现有项目根目录(local.properties或者settings.gradle或app文件夹所在目录)创建zxing文件夹,在zxing文件夹中创建src文件夹,在src文件夹中创建main文件夹,在main文件中创建java文件夹,文件夹结构如下图(其中testzxing为已有项目根目录)

图3

? ?2.复制android文件夹下源码

打开图2中的android文件夹,如图5

图5?解压后的zxing的android文件夹内容

将pom.xml及proguard.cfg文件复制到图3的zxing目录下,复制后如下图

图6?已有项目zxing文件夹

复制图5中res和assets文件夹及AndroidManifest.xml到已有项目新建的main文件夹下,复制后如图7

图7?复制后已有项目的main文件夹

打开图5中的src文件夹,将com文件夹复制到已有项目新建的java文件夹下,复制后如图8

图8?复制后的已有项目java文件夹

? 3.复制下载解压后的android-core文件夹内唯一的一个源码文件

复制CameraConfigurationUtils.java到已有项目对应的camera文件夹下,复制后如图9

图9?复制CameraConfigurationUtils.java文件

4.文件复制结束

三、导入zxing依赖包及将zxing改为库模式

在已有项目的zxing目录下,新建build.gradle文件,内容填写如下

plugins {

????id 'com.android.library' ?//库模式

????id 'kotlin-android'

}

android {

????compileSdk 32 ?//改成和已有项目一致

????defaultConfig {

????????minSdkVersion 16 ?//改成和已有项目一致

????????targetSdkVersion 30 ?//改成和已有项目一致



????????testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

????????consumerProguardFiles "consumer-rules.pro"

????}

????buildTypes {

????????release {

????????????minifyEnabled false

????????????proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

????????}

????}

????dependencies {

????????//zxing的core库,不编译下载的core库,直接引用

????????implementation "com.google.zxing:core:3.5.1"

????????//zxing

????????implementation "com.google.zxing:zxing-parent:3.5.1"

????}

}

?

四、AndroidManifest.xml文件修改

1.删除

<intent-filter>

????????<action android:name="android.intent.action.MAIN"/>

????????<category android:name="android.intent.category.LAUNCHER"/>

??????</intent-filter>

2.删除logo,防止编译后和主项目冲突,或者编译合并出错

android:icon="@drawable/launcher_icon"

android:logo="@drawable/launcher_icon"

android:label="@string/app_name"

? ? ? 3.修改横竖屏

<activity android:name=".CaptureActivity"

??????????android:screenOrientation="sensorLandscape"

改成

<activity android:name=".CaptureActivity"

??????????????android:screenOrientation="sensorPortrait"

五、将zxing加入已有项目的dependency

在AndroidStudio的 文件-项目结构中添加依赖,选Module Dependency,将前面复制好的zxing项目加入依赖,如图10

图10?已有项目加入zxing依赖

六、编译排错

重新编译项目,会报R文件错误,如图11

不用担心,根据提示点击进去你会发现所有报错的地方都有一个共同点,那就是都用了switch语句,然后你要做的就是将所有的switch语句换成if语句就可以了。

七、导入完成,测试

至此zxing就导入到你的项目中去了,在自己的应用中启动CaptureActivity就可以进行扫描了。

看看能否在主项目中调用zxing module 的 CaptureActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
????setContentView(R.layout.activity_main);
????tvMain = (TextView) findViewById(R.id.tv_main);
????tvMain.setOnClickListener(this);
}

@Override
public void onClick(View v) {
????switch (v.getId()) {
????case R.id.tv_main:
????????Intent intent = new Intent(this, CaptureActivity.class);
????????startActivityForResult(intent, 1);
????break;
    }
}

证明我们的zxing 导入成功了。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:21:31  更:2022-12-25 11:24:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 18:53:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码