Подтвердить что ты не робот

Android Gradle - можно использовать разделение только для выпуска?

Я хочу использовать "splits" на "abi", но только для сборки релиза. Это возможно? Я пытаюсь использовать переменную ext и переменную "def" также, которая по умолчанию установлена ​​в false. Эта переменная имеет значение true в buildTypes для releaseWithLog (и выпуска).

Но я не знаю, как работает Gradle, потому что когда я добавляю writeln() с тестовым сообщением для "debug", "releaseWithLog" и "release" и запускает сборку, все сообщения выводятся, поэтому это подтверждает мне, что переменная "splitsEnabled" установлена ​​в true, хотя я строю для отладки - и я ожидаю значение "false" для отладки (и не используя для этого отладки).

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
        }
    }
    ... 
4b9b3361

Ответ 1

Это можно легко решить с помощью аргумента командной строки Gradle или поля Script parameters: "для задачи Gradle в Android Studio. Я использовал -P для определения символа dbgBld и использовал его для отладочных сборников, например:

gradle -PdbgBld installDebug

Мой файл build.gradle имеет следующую команду расщепления:

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

Теперь для создания выпуска я использую:

gradle assembleRelease

Символ 'dbgBld' не определен, поэтому поле разрешений splits разрешает true, и я получаю 5 APK файлов. При создании для отладки, -PdbgBld уже сохранен в моей конфигурации Android Studio, и я получаю только один "жирный" APK для отладки, что приводит к гораздо более быстрым сборкам отладки.

Грег