Android Studio varsayılan olarak build.gradle'da hangi Ürün Lezzetini oluşturur?


160

Yeni Gradle derleme sistemini kullanan bir Android projemiz var ve Android Studio'yu bir geliştirme aracı olarak kullanıyoruz. Belirtilen birkaç ürün çeşidi olduğunda build.gradle, Android Studio'nun alfabetik olarak belirtilen ilk ürünü oluşturduğunu fark ediyoruz. Android Studio'ya geliştirme sırasında yalnızca belirli bir ürün aroması oluşturmasını ve test etmesini söylemenin bir yolu var mı?

Yanıtlar:


334

Studio penceresinin sol alt tarafında "Yapı Varyantları" adı verilen sabit bir görünüm vardır.

Açın ve hangi varyant üzerinde çalışmak istediğinizi seçin. Bu, hangi varyantın oluşturulduğunu değil, aynı zamanda kod ve kaynak editörlerinde tamamlamayı artıracak etkin kaynak klasörlerini de etkiler.


15
Güzel. İlk içe aktarma sonrasında hangisini tercih ettiğini özelleştirmenin bir yolu var mı?
Joe

3
Ben öyle düşünmüyorum. Bunu ekleyip yapamayacağımızı kimin yaptığını mühendise sorabilirim. Ancak, tatlarınız varsa, bu proje başına farklı olacaktır.
Xavier Ducrohet

34
Varyantlar, lezzet (ler) ve yapı tiplerinin bir kombinasyonudur. Yalnızca varyantları dağıtabilirsiniz. Asla sadece bir lezzet olan bir apk oluşturamazsınız.
Xavier Ducrohet

5
İlgileniyorsanız, belirtilen değişkeni oluşturmak için komut satırını kullanabilirsiniz: ./gradlew assemble <Flavor1> <Flavor2> <...> <BuildType>, örneğin assembleGooglePlayRelease. Ve bağlı cihaz veya taklitçi kullanarak inşa edebilir ve kurabilirsiniz: ./gradlew install <Flavor1> <Flavor2> <...> <
BuildType

5
Ancak Android Studio hangi ürün lezzetiyle uygulamayı varsayılan olarak oluşturuyor?
Malwinder Singh

20

Şu anda varsayılan lezzeti seçmenin bir yolu yok gibi görünüyor. Android Sorun İzleyicisi'nde bunun için bir özellik isteği var:

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

İsteği yıldızla işaretleyebilir / oylayabilirsiniz, böylece Android geliştirme araçları biriktirme listesinde daha yüksek öncelik kazanır.


3
bu özellik Android Studio 3.5'te olacaktır. Şaka yok - bu uygulanması 5 yıl sürdü! (bilet oluşturma tarihine bakın)
Birisi

4

Evet, bir yolu var:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

Aksi takdirde hata ayıklama derleme türüne sahip varyantlar tercih edilir.

Android Studio 3.5'te eklendi, özellik isteğine bakın :

"Android Gradle Plugin 3.5.0-alpha08 ve Android Studio 3.5 Canary 8 [3.5.0.7] sürümlerine dahildir.

Daha eski AGP kullanan projeler ve açık ayarları olmayan projeler için sezgisel tarama, yürütme iletisinde açıklandığı gibi yapı türü hata ayıklamasıyla varyantları destekleyecek şekilde güncellendi. "


-1

Çalıştırmadan önce bölümünde çalıştır komutunu belirleyebilirsiniz.

Tüm sınıf görevlerini şu şekilde listeleyebilirsiniz: gradlew tasks

resim açıklamasını buraya girin


Bunu denedim ve kesinlikle sadece bir lezzet inşa edilmesine neden olsa da, Android Studio yine de sadece seçilen varyantı başlatacak. Daha da kötüsü, seçilen varyantta olmayan belirli bir Etkinliği seçersem, "etkinliğin dışa aktarılması veya bir niyet filtresi içermesi" diyen kafa karıştırıcı bir hata mesajı alıyorum. Yapı bariyeri seçimini değiştirdikten sonra hata kayboluyor.
Dagmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.