在build.gradle中使用CPU ABI拆分时,不考虑Android产品风格

Ran*_*ku' 15 android apk android-gradle-plugin android-productflavors

我想根据http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits根据CPU ABI进行APK拆分,但是我想将APK拆分为一个某些产品的味道.

所以我的build.gradle文件有以下产品风格plainmarket.实际上我想在构建market风味时执行APK拆分.

android {
    productFlavors {
        plain {
        }
        market {
            splits {
                abi {
                    enable true
                    reset()
                    include 'armeabi', 'armeabi-v7a', 'x86', 'mips'
                    universalApk true
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,当我调用gradle assemblePlainDebugassembleMarketDebug,他们都产生了多个APK.上面的配置有问题吗?

我正在使用com.android.tools.build:gradle:1.2.3.

spe*_*ads 11

我一直在寻找一种方法来做到这一点,并没有找到一个可靠的解决方案.在解析buildTypes和productFlavor之前必须运行与拆分有关的事情.

Android的摇篮-是使用仅分裂释放可能吗?问题有我觉得有用的答案.它基本上依赖于项目属性,在通过命令行或持续集成环境构建时传入,以设置天气分裂apk的选项是否启用.

我用它是这样的:

splits {
    abi {
        enable project.hasProperty('splitApk')
        reset()
        include 'x86', 'armeabi-v7a', 'mips', 'armeabi'
        universalApk true
    }
}
Run Code Online (Sandbox Code Playgroud)

然后根据您正在构建的falvour或构建类型,您可以包括:

./gradlew --project-prop splitApk assembleMarketDebug
Run Code Online (Sandbox Code Playgroud)

这应该只在明确告知时才启用apk拆分,并且应该对其他所有内容保持禁用状态.