美文网首页
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