Android Gradle: ¿el uso se divide solo para el lanzamiento?
android-gradle-plugin (1)
Quiero usar "splits" por "abi", pero solo para la versión de lanzamiento. es posible? Intento usar la variable ext y la variable "def", que también se establece en false de forma predeterminada. Esta variable se establece en true en buildTypes para releaseWithLog (y release).
Pero no sé cómo funciona Gradle, porque cuando agrego writeln () con mensaje de prueba a "debug", "releaseWithLog" y "release" y ejecuto build, todos los mensajes están en salida, así que esto confirma que la variable "splitsEnabled "se establece en verdadero, aunque compilo para la depuración, y espero un valor" falso "para la depuración (y, por lo tanto, no uso splits para la depuración).
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
}
}
...
Puede resolver esto fácilmente con un argumento de línea de comando para Gradle, o el campo "Parámetros de script:" para una tarea de Gradle en Android Studio. Utilicé -P para definir el símbolo ''dbgBld'' y lo usé para compilaciones de depuración, por ejemplo:
gradle -PdbgBld installDebug
Mi archivo build.gradle tiene el siguiente comando de división:
splits {
abi {
enable !project.hasProperty(''dbgBld'')
reset()
include ''armeabi'', ''armeabi-v7a'', ''x86'', ''mips''
universalApk true
}
}
Ahora para construir la versión que uso:
gradle assembleRelease
El símbolo ''dbgBld'' no está definido, por lo que el campo de habilitación de las divisiones se resuelve en verdadero y obtengo 5 archivos APK. Al compilar para la depuración, el -PdbgBld ya está guardado en mi configuración de Android Studio y solo obtengo una APK "grande" para la depuración, lo que resulta en construcciones de depuración mucho más rápidas.
Greg