Android Gradle-是否仅在发布时使用拆分?

Android Gradle-是否仅在发布时使用拆分?,android,android-gradle-plugin,Android,Android Gradle Plugin,我想用“abi”来表示“splits”,但只用于发布版本。这可能吗?我尝试使用ext变量和variable by“def”,默认设置为false。对于releaseWithLog(和release),此变量在buildTypes中设置为true 但我不知道Gradle是如何工作的,因为当我将带有测试消息的writeln()添加到“debug”、“releaseWithLog”和“release”并运行构建时,所有消息都在输出中,所以这证实了变量“splitsEnabled”设置为true,尽管我

我想用“abi”来表示“splits”,但只用于发布版本。这可能吗?我尝试使用ext变量和variable by“def”,默认设置为false。对于releaseWithLog(和release),此变量在buildTypes中设置为true

但我不知道Gradle是如何工作的,因为当我将带有测试消息的writeln()添加到“debug”、“releaseWithLog”和“release”并运行构建时,所有消息都在输出中,所以这证实了变量“splitsEnabled”设置为true,尽管我是为调试构建的,但我希望调试的值为“false”(因此不使用拆分进行调试)


您可以使用Gradle的命令行参数或Android Studio中Gradle任务的“脚本参数:”字段轻松解决此问题。我使用-P来定义“dbgBld”符号,并将其用于调试构建,例如:

gradle -PdbgBld installDebug
My build.gradle文件具有以下拆分命令:

splits {
    abi {
        enable !project.hasProperty('dbgBld')
        reset()
        include 'armeabi', 'armeabi-v7a', 'x86', 'mips'
        universalApk true
    }
}
现在要构建我使用的版本:

gradle assembleRelease
没有定义“dbgBld”符号,因此splits enable字段解析为true,我得到5个APK文件。当构建用于调试时,-PdbgBld已经保存在我的Android Studio配置中,我只得到一个用于调试的“fat”APK,这会导致更快的调试构建


格雷格

由于
拆分
构建类型
的对等项,我怀疑拆分不能按类型进行,但我很高兴被证明是错误的。但请记住,
启用拆分启用
在选择构建类型之前运行良好。
build.gradle
中的语句主要用于构建对象模型。这不是解释脚本。只有在构建了对象模型之后,Gradle才开始计算运行任务所需的构建类型。我也很感兴趣-希望节省构建时间,只需在Debuggi中构建一个拆分。最终,我恢复到使用ABI构建的旧方法来解决此问题!发现这真的很有用有没有办法在Android Studio运行/调试启动配置中设置它?@OrB我看到现在我的Android Studio运行/调试启动配置执行了一个“Grade aware Make”命令。我不知道在哪里可以编辑这个版本的任何选项,但是为了构建实际的发布版本,您仍然需要执行'gradleassembleerelease'。我只需要反转条件并定义releaseBld常量之类的东西,以拥有'gradle-PreleaseBld assemblererelease'并相应地修改build.gradle。reset()调用做什么?@scana:将要包含的密度列表重置为空字符串(这允许在与include连用时,指示使用哪一个,而不是忽略哪一个)
gradle assembleRelease