मैं अपना मुफ्त ऐप और भुगतान ऐप मर्ज करने की कोशिश कर रहा हूं। एंड्रॉइड की नई बिल्ड सिस्टम के उत्पादफ्लोर्स मेरी समस्या के लिए एकदम सही फिट प्रतीत होते हैं।ग्रैडल एंड्रॉइड प्लगइन विभिन्न उत्पाद स्वाद के लिए आर फाइलें उत्पन्न करता है?
मेरे पास फ्रीएप स्वाद बहुत अच्छा काम कर रहा है, हालांकि जब मैं पेडएप स्वाद का निर्माण करता हूं तो आर फाइल जो उत्पन्न हो रही है वह एक पैकेज संरचना में है जिसे फ्री ऐप में परिभाषित किया गया है।
यहाँ gradle.build फ़ाइल से से एक टुकड़ा है:
productFlavors {
freeApp {
versionCode 201308020
versionName "2.0.13_free"
packageName "com.flyingspheres.android"
}
paidApp {
versionCode 201305110
versionName "2.0.10_paid"
packageName "com.flyingspheres.android.inventory"
}
मैं हमेशा से यह मानना आर फ़ाइल के स्थान प्रकट में पैकेज नाम से परिभाषित किया गया है। मैंने सत्यापित किया कि मैनिफेस्ट फ़ाइल सही ढंग से उत्पन्न हो रही है।
समस्या यह है कि दोनों स्वादों के लिए आर फ़ाइल एक ही स्थान पर स्थित है। ग्रैडल मांग करता है कि एक मेनिफेस्ट मुख्य स्रोत पेड़ के भीतर रहता है, इसलिए मुख्य स्रोत पेड़ में मैनिफेस्ट का जो भी संस्करण मैंने रखा है, जहां आरजेजा फ़ाइल उत्पन्न की जाएगी।
मान लीजिए कि मुझे प्रत्येक स्वाद के लिए सही स्थान में उत्पन्न करने के लिए आर फाइलें मिलती हैं; आर फ़ाइल के लिए आयात विवरण कैसे प्रबंधित किए जाने चाहिए, ताकि प्रत्येक स्वाद सही आर फ़ाइल का संदर्भ दे? - मुख्य पेड़ पूरी तरह से उत्पाद के ऊपर लिख चाहिए में प्रकट प्रलेखन के अनुसार
प्रत्येक AndroidManifest.xml फ़ाइल एक पूर्ण और पूर्ण प्रकट है:
यहाँ मेरी परियोजना संरचना के एक स्क्रीन शॉट है स्वाद संस्करण। हालांकि, यह स्पष्ट रूप से नहीं हो रहा है, क्योंकि जिस गतिविधि को लॉन्च किया जाना चाहिए और सामग्री प्रदाताओं को ओवरराइट नहीं किया जा रहा है।
जो भी मैं गलत कर रहा हूं उसके लिए कोई अंतर्दृष्टि सबसे सराहना की जाएगी। यह एक बहुत ही सामान्य स्थिति होनी चाहिए कि पैकेज नाम को ओवरराइड करने वाला कोई भी व्यक्ति इसमें भाग लेगा। मैं इसे लगभग एक हफ्ते तक समझने की कोशिश कर रहा हूं और खुद को वहां नहीं लग रहा है।
धन्यवाद,
-Aaron
यह सही उत्तर है। स्वीकार किया जाना चाहिए। – osayilgan