android studio导入第三方依赖库遇到的问题

在Android Studio中导入第三方库时,遇到了两个主要问题:1) jar包冲突导致的"duplicate entry"异常,解决方法是识别冲突的jar包并移除多余依赖;2) "UnsatisfiedLinkError",由于找不到qalcodecwrapper.so文件,通过在jniLibs目录下创建armeabi-v7a子目录并复制.so文件解决。此外,还忽略了一些关于过时API和不安全操作的警告。

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

主要是遇到了两个异常

1、

Error:Execution failed for task ':app:transformClassesWithJarMergingForHezongDebug'.

> com.android.build.api.transform.TransformException: java.util.zip.ZipException:duplicate entry: com/tencent/mm/sdk/a/a$a.class

一般出现“duplicate entry”字样的,多为jar包冲突,需要根据后面的 "com/tencent/mm/sdk/a/..."等信息,确定是哪个jar包引起了冲突(实际原因是jar包重复,即第三方依赖库包含了和当前module一样的jar包),解决冲突即可(确认一下,删除多余的就成了)。


2.

java.lang.UnsatisfiedLinkError:Couldn't load qalcodecwrapperfrom loader dalvik.system.PathClassLoader[dexPath=/data/app/com.fanxing.hezong-2.apk,libraryPath=/data/app-lib/......]: findLibrary returned null

解决jar包冲突之后,又报了这个错误,意思是说 qalcodewrapper 这个东西找不到,开始的时候,我还真不知道我的工程里面有这个东西。上网一查,发现这个应该是个.so文件,但是我的libs文件夹中(或者是/src/jniLib/armeabi文件夹)有这个文件啊,怎么会找不到。解决方法是:在libs(或者是jniLibs   看你的so文件放在哪里了)文件夹下新建一个armeabi-v7a文件夹,将armeabi里面的so文件全部复制过来。


除此之外,还遇到了一个警告

注:某些输入文件还使用或覆盖了已过时的API。

注:某些输入文件还使用了未经检查或不安全的操作。

这个警告可以无视,如果你只想让程序成功运行起来的话。一般产生这个警告的原因是引用了具有相同功能的jar包,一个比较久远,另外一个可能是新出来的。我这边是引用了okhttp-2.0.0-rc1.jar和org.apache.http.legacy.jart(asynhttpclint,历史比较早)两个jar包,而这两个都是负责联网用的第三方框架。如果你想仔细确定是哪个位置引用了过时的方法,可以在工程的build.gradle中增加如下标红的信息(记住,位置是工程的build.gradle):

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
    repositories {
        jcenter()
    }
}
重新编译,你将会在message界面看到引用过时代码的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值