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

我们只关注其中的android和android-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.删除

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

android:icon="@drawable/launcher_icon"

android:logo="@drawable/launcher_icon"

android:label="@string/app_name"

3.修改横竖屏

android:screenOrientation="sensorLandscape"

改成

   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 导入成功了。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:Android实现一维二维码扫描生成功能(一)-zxing导入现有项目-创新互联
URL地址:http://ybzwz.com/article/dciipp.html