कृपया ध्यान दें: जेवियर के उत्तर के बाद संपादित किया गया उत्तर
मैं एंड्रॉइड स्टूडियो में एक ही एप्लिकेशन प्रोजेक्ट के लिए विभिन्न बिल्ड फ्लेवर का उपयोग करने की कोशिश कर रहा हूं । हालांकि, मुझे लगता है कि यह उचित रूप से काम करने के लिए एक भयानक समय है।
कदम:
- एक नया एंड्रॉइड स्टूडियो प्रोजेक्ट बनाएं, जिसका नाम 'टेस्ट' है।
Build.gradle * खोलें और निम्न पंक्तियाँ जोड़े:
productFlavors { flavor1 { packageName 'com.android.studio.test.flavor1' } flavor2 { packageName 'com.android.studio.test.flavor2' } }
- एंड्रॉइड स्टूडियो को पुनरारंभ करने के बाद, अब मैं बिल्ड वेरिएंट अनुभाग के तहत 4 बिल्ड वेरिएंट देखता हूं । मतलब कि हम अभी तक उत्पाद के स्वादों को स्थापित करने में सफल थे। **
स्वाद 1 के लिए एक नया स्रोत फ़ोल्डर बनाया गया ; हालाँकि, मुझे यकीन नहीं है कि मैं इसे सही तरीके से कर रहा हूँ। यहाँ है कि मैंने यह कैसे किया:
- ध्यान रखें कि इस परियोजना के लिए मेरा पैकेज का नाम है:
com.foo.test
src
स्वाद 1 के लिए फ़ोल्डर पर राइट क्लिक करें , मैंने वास्तव में एक्सप्लोरर को अलग-अलग फ़ोल्डर में बनाया है, इस तरह से कि संरचना हैsrc/flavor1/java/com/foo/test/MainActivity.java
।- उपरोक्त अच्छी तरह से काम किया, क्योंकि 'जावा' फ़ोल्डर नीले रंग में है , जिसका अर्थ है कि आईडीई एक सक्रिय स्रोत निर्देशिका जानता है। इसके अलावा, पैकेज स्वचालित रूप से बनाया गया था। इसके बावजूद, मुझे डुप्लीकेट क्लास के लिए चेतावनी मिल रही है। यहां देखें स्क्रीनशॉट
- स्वाद 2 के लिए, मैंने मैन्युअल रूप से पैकेज बनाने की कोशिश की, लेकिन स्वाद 2 के लिए 'src' फ़ोल्डर नीले रंग में नहीं है, और इसलिए जब राइट क्लिक किया जाता है तो विकल्प अलग होते हैं, और मेरे लिए 'नया पैकेज' उपयोग करने के लिए उपलब्ध नहीं होता है। यहां देखें छवि
- ध्यान दें कि स्वाद 1 के लिए, मैंने एक 'रेस' निर्देशिका भी बनाई है, जो नीले रंग में बदल जाती है, लेकिन इसके बावजूद, मैं एंड्रॉइड रिसोर्स फ़ाइल या एंडरॉयड संसाधन निर्देशिका बनाने की क्षमता प्रदान नहीं करता, अगर मैं अलग उपयोग करना चाहता था विभिन्न जायके के लिए resoruces।
- ध्यान रखें कि इस परियोजना के लिए मेरा पैकेज का नाम है:
क्या मुझसे कुछ गलत हो रही है? या क्या मैं कुछ न कुछ भूल रहा हूं? मुझे बताएं यदि आपको अधिक जानकारी की जरूरत है।
* मेरी परियोजना के लिए दो build.gradle फ़ाइलें है लगता है । एक परियोजना फ़ोल्डर (\ GradleTest) की जड़ पर स्थित है, यह एक खाली है। दूसरा ग्रेड \ ग्रेडलेस्ट के सबफ़ोल्डर की जड़ पर स्थित है, जिसे 'ग्रेडलेस्ट' (ग्रेडलेस्ट-ग्रेडलेस्ट) भी कहा जाता है, यह वह है जिसमें पहले से ही कोड था जब खोला गया था; इसलिए, यह वह है जिसे मैंने संपादित किया है।
** मैंने ग्रेड सेटिंग्स की जाँच की और जाहिरा तौर पर ऑटो-आयात का उपयोग पहले से ही सक्षम था । इसके बावजूद, बिल्ड.ग्रेड फ़ाइल में परिवर्तन करने से बिल्ड वेरिएंट स्वचालित रूप से अपडेट नहीं होता है । नोट: मैंने बिल्ड - पुनर्निर्माण प्रोजेक्ट, और / या बिल्ड - मेक प्रोजेक्ट, नो-गो का उपयोग करके भी कोशिश की। मुझे अभी भी परियोजना को बंद करना है, और परिवर्तनों को प्रभावी करने के लिए फिर से खोलना है।
applicationId
अब इसके बजाय समर्थित हैpackageName
।