如何排除某些产品口味的ABI拆分?

时间:2019-04-29 10:31:11

标签: android android-gradle

我有一个具有多种产品口味的Android应用:具有minApi16minApi21口味的API维度。我想将ABI拆分用于minApi16,而不要用于minApi21

我这样设置拆分:

splits {
    abi {
        enable true
        reset()
        include "armeabi-v7a", "x86"
        universalApk true
    }
}

这将创建6个APK(minApi21为3个,minApi16为3个)。我只需要4个(minApi21 1个通用,minApi16 3个)。我尝试了提供here的解决方案,但这仅基于Gradle任务名称起作用:与assembleMinApi16assembleMinApi21一起使用,但不适用于assemble

我试图从applicationVariant中删除不需要的输出,但这似乎不起作用:

android.applicationVariants.all { variant ->
    def iterator = variant.outputs.iterator()

    while (iterator.hasNext()) {
        def output = iterator.next()
        def name = output.name
        if (name.contains("minApi21") && !name.contains("universal")) {
            iterator.remove()
        }
    }
}

0 个答案:

没有答案