「abi」で「分割」を使用したいが、リリースビルドにのみ使用する。これは可能ですか? ext変数と変数defをデフォルトでfalseに設定してみます。この変数は、releaseWithLog(およびrelease)のbuildTypesでtrueに設定されます。Android Gradle - リリースでのみスプリットを使用しますか?
しかし、私はwriteln()に "debug"、 "releaseWithLog"、 "release"にテストメッセージを追加してビルドを実行すると、すべてのメッセージが出力されるので、これは私に確信しています。私はデバッグ用にビルドしていますが、変数 "splitsEnabled"はtrueに設定されています。そして、デバッグ用に値 "false"を期待しています(デバッグ用に分割を使用しません)。フィールドのAndroid StudioでのGradleのタスクのために:
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
}
}
...
splits'は 'buildTypes'のピアである'ので、私は分割ごとのタイプに基づいて行うことができないと思われるが、私は間違って証明させていただきます。しかし、 'enable splitsEnabled'はビルドタイプが選択される前に実行されることに注意してください。 'build.gradle'のステートメントは主にオブジェクトモデルを構築しています。これは翻訳されたスクリプトではありません。オブジェクトモデルが構築された後でさえ、Gradleは実行されているタスクに必要なビルドタイプを把握し始めます。 – CommonsWare
私も興味があります。ビルド時間を節約し、デバッグで1つの分割を作成するのが大好きです –
この問題を解決するためにABIビルドを行う古い方法に戻ってしまいました。 https://twitter.com/silentnuke/status/619501266646003713 –