Какую версию продукта Android Studio по умолчанию создает в build.gradle?


160

У нас есть проект Android, использующий новую систему сборки Gradle, и мы используем Android Studio в качестве инструмента разработки. Когда указано несколько вариантов продукта build.gradle, мы заметим, что Android Studio создает первый, указанный в алфавитном порядке. Есть ли способ заставить Android Studio создавать и тестировать только определенный продукт во время разработки?

Ответы:


334

В левом нижнем углу окна Studio есть закрепленный вид под названием «Build Variants».

Откройте его и выберите тот вариант, над которым вы хотите работать. Это повлияет на то, какой вариант будет создан, а также на включенные исходные папки, что будет способствовать завершению в редакторах кода и ресурсов.


15
Прохладно. Есть ли способ настроить, какой он предпочитает при первоначальном импорте?
Джо

3
Я так не думаю. Я могу спросить инженера, который сделал это, можем ли мы добавить это. Но это может отличаться для каждого проекта, если у вас есть вкусы.
Ксавье Дюкрохет

34
Варианты - это сочетание вкуса и типов сборки. Вы можете только развернуть варианты. Вы никогда не можете создать apk, который только аромат.
Ксавье Дюкрохет

5
Если вам интересно, вы можете использовать командную строку для создания указанного варианта: ./gradlew assembly <Flavor1> <Flavor2> <...> <BuildType>, например, buildGooglePlayRelease. И вы можете собрать и установить на подключенное устройство или эмулятор, используя: ./gradlew install <Flavor1> <Flavor2> <...> <BuildType>
Deepscorn

5
Но с какой разновидностью продукта Android-студия создает приложение по умолчанию?
Малвиндер Сингх

20

В настоящее время, похоже, нет способа выбрать вкус по умолчанию. Для этого в Android Issue Tracker есть запрос:

https://code.google.com/p/android/issues/detail?id=64917

Вы можете пометить / проголосовать за запрос, чтобы он получил более высокий приоритет по сравнению с бэклогом инструментов разработки Android.


3
эта функция будет в Android Studio 3.5. Без шуток - это заняло 5 лет! (посмотрите на дату создания билета)
Кто-то где-то

4

Да, есть способ:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

И в противном случае предпочтение отдается вариантам с типом сборки отладки.

Он был добавлен в Android Studio 3.5, см. Запрос функции :

"Включено в плагин Android Gradle 3.5.0-alpha08 и Android Studio 3.5 Canary 8 [3.5.0.7].

Эвристика для проектов, использующих более старый AGP, и проектов без явных настроек также была обновлена, чтобы добавить варианты с отладкой типа сборки, как описано в сообщении фиксации ».


-1

Вы можете указать команду run В разделе Перед запуском Gradle -ware Make

Вы можете получить список всех заданий на gradlew tasks

введите описание изображения здесь


Я попробовал это, и хотя это, безусловно, приводит к созданию только одного варианта, Android Studio все равно будет запускать только выбранный вариант. Хуже того, если я выберу конкретную операцию, а не в выбранном варианте, то получаю сбивающее с толку сообщение об ошибке, говорящее: «операция должна быть экспортирована или содержать фильтр намерений». Ошибка исчезнет, ​​как только я изменю выбор сборки bariant.
Дагмар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.