lib引入jar包,引起jar包冲突,transformDexArchiveWithExternalLibsDexMergerForDebug unable to merge dex

2018-03-18 16:58:03

一般jar包冲突,多是两个jar包版本不一样引起的。

我的解决方案是:


configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        requested = details.requested
        (requested.group == ) {
            (!requested.name.startsWith()) {
                details.useVersion }
        }
        (requested.group == ) {
            (requested.name.startsWith()) {
                details.useVersion }
        }
        (requested.group == ) {
            (requested.name.startsWith()) {
                details.useVersion }
        }
    }
}



但是,我直接把jar包放到lib文件夹下面,这个方案就突然解决不了了。。


我知道,去掉重复的jar包就能解决问题,但是,程序员强迫症,还是想从源头解决。


最后这样解决的。


把那两个jar包删除,然后。。。

implementation implementation


然后解决了,貌似上面那个方案只能解决gradle中引入的jar。

lib中的直接jar不管用。

  • 2019-08-28 22:45:02

    彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系

    Gradle是个构建系统,能够简化你的编译、打包、测试过程。熟悉Java的同学,可以把Gradle类比成Maven。Gradle Wrapper的作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。Gradle Wrapper是Gradle项目的一部分。

  • 2019-08-30 21:53:51

    OpenSSL实践-Android下的编译和使用

    openssl可以编译成ARM下面的二进制代码(动态库或者静态库),方便APP使用,APP在使用的时候,需要使用JNI来进行调用。

  • 2019-08-31 14:05:00

    JNI Crash:异常定位与捕获处理

    在Android JNI开发中,经常会遇到JNI崩溃的问题,尤其带代码量大,或者嵌入了第三方代码的情况下,很难进行问题定位和处理。本文将介绍两种常见的JNI崩溃处理方法,包括: 每个JNI调用后进行异常检测处理(适用于JNI代码量很小的情况) 捕获系统崩溃的Signal,并进行异常处理(适用于JNI代码量大,难以每句话后面都进行异常检测的情况)