Android的Gradle – 使用拆分只为释放可能?

我想用“abi”的“splits”,但只用于发布版本。 这可能吗? 我尝试使用extvariables和variables“def”也默认设置为false。 这个variables在releaseWithLog(和release)的buildTypes中设置为true。

但是我不知道Gradle是如何工作的,因为当我用testing消息添加writeln()到“debug”,“releaseWithLog”和“release”并运行build时,所有的消息都在输出中,所以这确认了variables“splitsEnabled “设置为真,虽然我build立debugging – 我期望值”假“debugging(而不是使用拆分debugging)。

apply plugin: 'com.android.application' android { compileSdkVersion 19 buildToolsVersion '20.0.0' ext { splitsEnabled = false } defaultConfig { ... } buildTypes { debug { ... } releaseWithLog { ... splitsEnabled = true } release.initWith(releaseWithLog) release { ... } } ... splits { abi { println(splitsEnabled) enable splitsEnabled reset() include 'x86', 'armeabi-v7a', 'armeabi' exclude 'x86_64', 'mips64', 'arm64-v8a', 'mips' universalApk true } } ... 

Solutions Collecting From Web of "Android的Gradle – 使用拆分只为释放可能?"

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

 gradle -PdbgBld installDebug 

我的build.gradle文件有以下拆分命令:

 splits { abi { enable !project.hasProperty('dbgBld') reset() include 'armeabi', 'armeabi-v7a', 'x86', 'mips' universalApk true } } 

现在来构build我使用的版本:

 gradle assembleRelease 

'dbgBld'符号没有定义,所以分割使字段parsing为真,我得到5个APK文件。 在进行debugging构build时,-PdbgBld已经保存在我的Android Studioconfiguration中,并且只有一个用于debugging的“胖”APK,这会导致更快的debugging版本。

格雷格