बिल्ड.ग्रेडल में एंड्रॉइड स्टूडियो डिफ़ॉल्ट रूप से किस प्रोडक्ट फ्लेवर का निर्माण करता है?


160

हमारे पास एक एंड्रॉइड प्रोजेक्ट है जो नए ग्रेडल बिल्ड सिस्टम का उपयोग करता है, और हम एक विकास उपकरण के रूप में एंड्रॉइड स्टूडियो का उपयोग करते हैं। जब कई उत्पाद फ्लेवर निर्दिष्ट होते हैं build.gradle, तो हम देखते हैं कि एंड्रॉइड स्टूडियो पहले एक निर्दिष्ट वर्णानुक्रम का निर्माण करता है। क्या विकास के दौरान केवल एक विशिष्ट उत्पाद स्वाद के निर्माण और परीक्षण के लिए एंड्रॉइड स्टूडियो को बताने का एक तरीका है?

जवाबों:


334

स्टूडियो विंडो के निचले बाईं ओर "बिल्ड वेरिएंट" नामक एक डॉक किया गया दृश्य है।

इसे खोलें और जिस भी संस्करण पर आप काम करना चाहते हैं उसे चुनें। यह प्रभावित करेगा कि कौन सा संस्करण बनाया गया है, लेकिन यह भी सक्षम स्रोत फ़ोल्डर है, जो कोड और संसाधन संपादकों में पूरा होगा।


15
ठंडा। क्या यह अनुकूलित करने का कोई तरीका है कि यह प्रारंभिक आयात पर कौन सा पसंद करता है?
जो

3
मुझे ऐसा नहीं लगता। मैं इंजीनियर से पूछ सकता हूं कि अगर हमने ऐसा किया तो हम इसे जोड़ सकते हैं। लेकिन अगर आपके पास फ्लेवर है तो यह हर प्रोजेक्ट के अलग होने की संभावना है।
ज़ेवियर डुक्रोहेट

34
वेरिएंट स्वाद (एस) और बिल्ड प्रकारों का एक संयोजन है। आप केवल वेरिएंट तैनात कर सकते हैं। आप कभी भी एक एपीके का निर्माण नहीं कर सकते जो केवल एक स्वाद है।
जेवियर डुक्रोएट

5
यदि आप रुचि रखते हैं, तो आप निर्दिष्ट वेरिएंट बनाने के लिए कमांड लाइन का उपयोग कर सकते हैं: ./gradlew असेंबल <Flavor1> <Flavor2> <...> <BuildType>, जैसे assGoGooglePlayRelease। और आप कनेक्टेड डिवाइस या एमुलेटर का उपयोग करके निर्माण और स्थापित कर सकते हैं: ./gradlew स्थापित करें <Flavor1> <Flavor2> <...> <BuildType>
Deepscorn

5
लेकिन किस उत्पाद के स्वाद के साथ, एंड्रॉइड स्टूडियो डिफ़ॉल्ट रूप से एप्लिकेशन का निर्माण करता है?
मालविंदर सिंह

20

वर्तमान में डिफ़ॉल्ट स्वाद का चयन करने का कोई तरीका नहीं है। इसके लिए Android समस्या ट्रैकर में एक सुविधा अनुरोध है:

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

आप अनुरोध को स्टार / वोट कर सकते हैं, इसलिए इसे एंड्रॉइड डेवलपमेंट टूल बैकलॉग पर उच्च प्राथमिकता मिलती है।


3
यह फीचर एंड्रॉयड स्टूडियो 3.5 में होगा। NO JOKE - इसे लागू करने में 5 साल लग गए !! (टिकट निर्माण की तारीख देखें)
कोई कहीं

4

हां वहां एक रास्ता है:

android {
    productFlavors {
        foo {
            isDefault true
        }
    }
}

और अन्यथा डिबग बिल्ड प्रकार वाले वेरिएंट पसंदीदा हैं।

यह एंड्रॉइड स्टूडियो 3.5 में जोड़ा गया था, सुविधा अनुरोध देखें :

"एंड्रॉइड ग्रैडल प्लगिन 3.5.0-अल्फा08 और एंड्रॉइड स्टूडियो 3.5 कैनरी 8 [3.5.0.7] में शामिल है।

पुरानी एजीपी का उपयोग करने वाली परियोजनाओं के लिए अनुमानी और बिना स्पष्ट सेटिंग्स के परियोजनाओं को भी बिल्ड टाइप डीबग के साथ वेरिएंट के पक्ष में अपडेट किया गया है, जैसा कि प्रतिबद्ध संदेश में वर्णित है। "


-1

आप ग्रेड-अवेयर मेक लॉन्च से पहले कमांड रन इन सेक्शन को निर्दिष्ट कर सकते हैं

आप सभी श्रेणी के कार्यों को सूचीबद्ध कर सकते हैं gradlew tasks

यहां छवि विवरण दर्ज करें


मैंने यह कोशिश की और जब यह निश्चित रूप से केवल एक स्वाद का निर्माण करता है, तो एंड्रॉइड स्टूडियो अभी भी केवल चयनित संस्करण लॉन्च करेगा। इससे भी बदतर, अगर मैं एक विशिष्ट गतिविधि का चयन करता हूं चयनित संस्करण में नहीं, तो मुझे एक भ्रामक त्रुटि संदेश मिलता है जिसमें कहा गया है कि "गतिविधि को निर्यात किया जाना चाहिए या एक आशय-फ़िल्टर होना चाहिए"। एक बार बिल्ड बैरिएंट चयन को बदलने के बाद त्रुटि दूर हो जाती है।
दागमार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.