Ich möchte "splits" von "abi" verwenden, aber nur für den Release-Build. Ist das möglich? Ich versuche ext Variable und Variable mit "def" auch zu verwenden, die standardmäßig auf false gesetzt ist. Diese Variable wird in BuildTypes für releaseWithLog (und release) auf true gesetzt.Android Gradle - ist die Verwendung von Splits nur für die Freigabe möglich?
Aber ich weiß nicht, wie Gradle arbeiten, denn wenn ich writelnn() mit Testnachricht zu "debuggen", "releaseWithLog" und "release" und Build ausführen, werden alle Nachrichten ausgegeben, so bestätigt dies mich Diese Variable "splitsEnabled" wird auf "true" gesetzt, obwohl ich für das Debugging erstellt habe - und ich erwarte den Wert "false" für das Debugging (und verwende daher keine Splits für das 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
}
}
...
Seit 'splits' ist ein Peer von' buildTypes', ich vermute, dass Splits nicht auf einer pro-Typ-Basis durchgeführt werden, aber ich werde glücklich sein, falsch erwiesen. Beachten Sie jedoch, dass 'enable splitsEnabled' lange vor der Auswahl eines Build-Typs ausgeführt wird. Die Anweisungen in 'build.gradle' bauen meistens ein Objektmodell auf. Dies ist kein interpretiertes Skript. Erst nachdem das Objektmodell erstellt wurde, beginnt Gradle herauszufinden, welche Buildtypen für die ausgeführten Tasks benötigt werden. – CommonsWare
Ich bin auch daran interessiert - würde gerne Build-Zeit sparen und nur einen Split in Debug bauen –
Ich landete zurück auf den alten Weg ABI Builds zu tun, um dieses Problem zu lösen! https://twitter.com/silentnuke/status/619501266646003713 –