解决 “Could not find class 'com.goole.zxing.Result”和“Multiple dex files define”问题

本文介绍了在Android应用中集成二维码扫描功能的过程及遇到的问题。针对无法找到类'com.goole.zxing.Result'和多dex文件定义冲突的问题,提供了具体的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


    刚学android应用程序开发,就遇到扫描二维码功能,比较棘手。goole了下,有个不错的开源库zxing,里面包含了二维码扫描功能。具体怎么使用,csdn上的博客http://blog.youkuaiyun.com/xiaanming/article/details/10163203《Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果》讲的比较详细,就不赘述了。这里主要分享中间过程遇到的两个问题以及相应的解决方案。


    一是运行时遇到“Could not find class 'com.goole.zxing.Result'”错误。解决办法如下:
1、在工程根目录下新建libs文件夹,然后将core.jar粘贴到libs下(我想这一步大家都是做了的);
2、build path->Libraries->点击Add JARs...(注意不是点击Add External JARs...)->选择你所在的工程->选择第一步新建的libs文件夹->选中第一步我们粘贴的core.jar->点击Ok;
3、选中libs文件夹->右击,然后选择Build Path->use as source folder

    第一个问题到这里就解决了。你天真的以为就能顺利运行了?错了,程序压根没跑起来。第二个问题来了。


    第二个问题是“Unable to execute dex: Multiple dex files define Lcom/google/zxing/BarcodeFormat;”。很多中文blog里都包含解决方法,吧啦吧啦吧啦说了一大推,但是都不起作用。后来在stackoverflow上找到了解决方法(不得不说stackoverflow是一个非常棒的网站),链接地址为:http://stackoverflow.com/questions/7870265/unable-to-execute-dex-multiple-dex-files-define-lcom-myapp-rarray。答案目前已经有156个赞同了。

    我用的是链接上的这种方法:In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running. 翻译过来就是,Build Path->Order and Export->然后将Android Private Libraries前面那个钩去掉->点击OK。

     重新运行,程序工作正常。不过还是遇到了网上同学的问题,扫描的时候要很远才能扫描到二维码,而且感觉扫描不敏感,扫描半天才成功一次,OMG。后续还得花时间把这些问题解决。



<think>好的,我现在需要解决用户提到的Maven依赖问题,具体是无法在阿里云仓库中找到com.google.zxing:zxing-core:pom:3.7.1。首先,我需要确认这个依赖是否存在,或者用户是否写错了版本号。 首先,我应该检查Maven中央仓库是否有这个版本。访问https://mvnrepository.com/,搜索zxing-core,看看可用的版本。根据我的记忆,zxing-core的版本通常以3.x.x的形式存在,比如3.4.0、3.4.1等。3.7.1可能不存在,可能是用户记错了版本号。 然后,假设用户确实需要3.7.1版本,但阿里云镜像中没有,可能需要检查阿里云仓库的同步状态,或者确认是否该版本已被移除。如果确实不存在,建议用户使用其他仓库,比如Maven Central,或者检查依赖配置是否正确。 另外,用户可能把artifactId或groupId写错了。比如,zxing-core的正确groupId是com.google.zxing,artifactId是core,而不是zxing-core。或者可能混淆了不同的子模块。例如,zxing-core可能属于不同的groupId,或者正确的artifactId应该是其他名称。 然后,考虑到用户可能在pom.xml中错误地指定了类型为pom,即<packaging>pom</packaging>,而实际上zxing-core应该是一个jar包。因此,依赖声明中的pom类型可能是错误的,应该去掉或者改为默认的jar。 接下来,需要建议用户检查依赖声明的正确性,确认groupId、artifactId版本号是否正确。同时,可以建议他们尝试使用较新的版本,比如3.5.0或3.4.1,这些版本在阿里云仓库中可能存在。 如果用户必须使用3.7.1版本,可能需要手动添加到本地仓库,或者配置其他镜像仓库,比如JCenter或者直接使用Maven Central。此外,还可以检查项目的仓库配置,确保阿里云仓库正确配置,并且没有被其他设置覆盖。 最后,可能需要指导用户如何清理Maven本地仓库的缓存,避免旧的元数据导致的问题,或者建议他们使用Gradle的依赖管理,如果项目允许的话,参考引用[2]中的Gradle多模块实践,简化依赖管理。</think>要解决Maven依赖$com.google.zxing:zxing-core:pom:3.7.1$在阿里云仓库找不到的问题,请按以下步骤操作: ### 一、验证依赖有效性 1. **检查版本号正确性** 经查Maven中央仓库,zxing-core的最新稳定版本为$3.5.2$[^1],暂未发布$3.7.1$版本,可能为版本号误写或混淆子模块名称 $$ \text{有效版本示例} = \{3.5.2, 3.4.1, 3.3.3\} $$ 2. **确认依赖坐标** 正确的依赖声明应为: ```xml <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.5.2</version> </dependency> ``` 注意`artifactId`是$core$而非$zxing-core$ ### 二、解决方案 #### 方案1:使用有效版本 ```xml <!-- 推荐使用阿里云仓库存在的版本 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.5.2</version> </dependency> ``` #### 方案2:添加中央仓库 在pom.xml中增加Maven中央仓库配置: ```xml <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> ``` #### 方案3:检查仓库配置 确保settings.xml中阿里云镜像配置正确: ```xml <mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> ``` ### 三、附加建议 - 执行`mvn clean install -U`强制更新依赖 - 使用Gradle依赖管理可参考模块化配置实践[^2] - 如需特定版本,可手动安装到本地仓库: ```bash mvn install:install-file -Dfile=zxing-core-3.7.1.jar -DgroupId=com.google.zxing -DartifactId=core -Dversion=3.7.1 -Dpackaging=jar ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值