तो यह थोड़ा दिलचस्प है, मुझे यकीन है कि एंड्रॉइड स्टूडियो में इसे कैसे सेट अप करना है। मेरे पास कई मॉड्यूल हैं जिनमें विभिन्न ऐप्स में उपयोग किए जाने वाले कुछ पुनः उपयोग करने योग्य घटक हैं, हालांकि स्वादों का उपयोग करके पुन: प्रयोज्य घटकों में कुछ विषयों को इंजेक्ट करना अच्छा होगा। प्रत्येक ऐप के लिए प्रत्येक घटक के लिए एक नया स्वाद बनाने के बजाय, मैं 1 थीम मॉड्यूल रखने की सोच रहा था, जिसमें प्रति ऐप लिखने वाला एक स्वाद होगा, जिसमें रंग योजनाएं हैं ... आदि। यहाँ मैं कैसे चाहते हैं कि उसे की स्थापना की तरह है:स्वाद के साथ एंड्रॉइड थीम मॉड्यूल
App1: dependencies reusable lib1 reusable lib3 reusable lib4 theme - App1 flavor App2: dependencies reusable lib1 reusable lib2 reusable lib4 theme - App2 flavor
अब अगर पुन: प्रयोज्य libs विषय पर पता करने के लिए जो स्वाद का निर्माण करने की जरूरत के बिना बस निर्भर हो सकता है मैं पसंद करते हैं, और उस में मुख्य अनुप्रयोग proj विषय पर निर्भरता है उस ऐप के स्वाद का संदर्भ दे सकता है (इस उत्तर का उपयोग https://stackoverflow.com/a/24316133/1316346)। इसका कारण यह है कि प्रत्येक पुन: प्रयोज्य मॉड्यूल में इसके निर्माण में एक ऐप नहीं हो सकता है। ग्रैडल निर्भरता या इससे उन्हें संदर्भित अन्य ऐप्स तोड़ देंगे। लिखने वाले प्रत्येक ऐप के लिए प्रत्येक पुन: प्रयोज्य मॉड्यूल का स्वाद बनाना भी कठिन है। क्या ऐसा कुछ हासिल करने का कोई तरीका है? यहाँ मैं क्या करने की कोशिश की है:
APP1 build.gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(path: ':Theme', configuration: 'app1Release')
compile project(':Lib1')
compile project(':Lib2')
compile project(':Lib4')
}
App2 build.gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(path: ':Theme', configuration: 'app2Release')
compile project(':Lib1')
compile project(':Lib3')
compile project(':Lib4')
}
Lib1 build.gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(path: ':Theme')
}
इस के साथ समस्या यह है जैसे ही Lib1 विषय में कुछ भी एक्सेस करने का प्रयास करता है, यह एक त्रुटि हो जाती है। असल में यह थीम को पहले भी नहीं बनाता है, यह थीम से पहले लिब 1 बनाने का प्रयास करेगा, भले ही लिब 1 की निर्भरता हो (स्वाद के साथ अजीब कुछ)। अगर मैं करने के लिए Lib1 बदलने के लिए:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(path: ':Theme', configuration: 'app1Release')
}
यह APP1 के लिए काम करेंगे, लेकिन मैं करना होगा या तो लगातार यह प्रत्येक अनुप्रयोग का निर्माण करने से पहले बदल सकते हैं या कर प्रत्येक lib मैं बचना चाहते हैं के लिए जायके के बहुत सारे। किसी ने कभी इस तरह कुछ हासिल किया है?
tl; डॉ कर सकते हैं एक मॉड्यूल संदर्भ एक और मॉड्यूल की एक स्वाद एप्लिकेशन एक ही मॉड्यूल
आप अपने ऐप्स में वास्तविक थीम का उपयोग क्यों नहीं करते? आपको अपने मॉड्यूल में किस प्रकार के मूल्यों को पारित करने की आवश्यकता है? यदि आप अपने मॉड्यूल में 'रंगमंचरी' जैसी थीम विशेषताओं का उपयोग करते हैं तो आप स्वाद के बिना सादा थेमिंग का उपयोग कर सकते हैं, आप अपनी थीम –