美文网首页
pickFirst not work

pickFirst not work

作者: new_xd | 来源:发表于2018-04-25 09:38 被阅读0次

编译错误

Duplicate files copied in APK libstlport_shared.so
    File 1: /path/to/libstlport_shared.so
    File 2: /path/to/another/libstlport_shared.so

原因

有两个lib带有相同的so文件,导致打包时冲突

解决方法

方法一
gradle中设置

    packagingOptions {
        pickFirst '**/libstlport_shared.so'
    }

方法二
gradle中设置

import com.android.build.gradle.internal.pipeline.TransformTask

def deleteDuplicateJniFiles() {
    def files = fileTree("${buildDir}/path/to/") {
        include "**/libstlport_shared.so"
    }
    files.each { it.delete() }
}

tasks.withType(TransformTask) { pkgTask ->
    pkgTask.doFirst { deleteDuplicateJniFiles() }
}

故事

我们引入了腾讯的xlog和直播库,但是他们都是包含libstlport_shared.so,导致冲突。
网上搜索到方法一,经过尝试在gradle4.1版本没有问题。
但是在gradle2.10版本不行,pickFirst就像没有写一样。
后来搜索到方法二,实践在gradle2.10上可行。

相关文章

网友评论

      本文标题:pickFirst not work

      本文链接:https://www.haomeiwen.com/subject/odjelftx.html