目前二维码扫描功能很流行也非常成熟了,而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.删除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元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款