2014-06-26 8 views
11

मैं ग्रैडल + एंड्रॉइड बिल्ड में मैनिफेस्ट प्लेसहोल्डर की नई संभावना के बारे में बहुत प्रचारित हूं। मैं Gradle प्रलेखन कि मैं इस तरह अपने ही प्लेसहोल्डर निर्दिष्ट कर सकते हैं में पाया है:एंड्रॉइड - विभिन्न बिल्ड प्रकारों के लिए मैनिफेस्ट प्लेसहोल्डर्स

productFlavors { 
    free { 
    } 
    pro { 
     manifestPlaceholders = [ activityLabel:"proName" ] 
    } 
} 

लेकिन मैं एक प्लेसहोल्डर नहीं निर्माण के प्रकार पर निर्भर है और उत्पाद जायके पर करना चाहते हैं। जब मैं उस प्लेसहोल्डर विनिर्देश को बिल्ड प्रकार सेटिंग्स में डालता हूं तो इसका कोई प्रभाव नहीं पड़ता है। क्या आप जानते हैं कि इसे कैसे प्राप्त किया जाए? क्योंकि मुझे लगता है कि बेवकूफ के पास तीन निर्माण प्रकार और तीन स्वाद शामिल हैं।

build.gradle: धन्यवाद

+0

मुझे आपके मामले के बारे में निश्चित नहीं है लेकिन शायद यह लिंक मदद करेगा? http://stackoverflow.com/questions/10887837/how-to-specify-spring-propertyplaceholderconfig-values-in-gradle-build –

+0

चूंकि मुझे यह सीधे काम करने के लिए नहीं मिला था और बहुत परीक्षण करने के लिए समय नहीं था अलग-अलग तरीकों से मैंने आखिरकार अलग-अलग बिल्ड प्रकार फ़ोल्डर्स में अपना मैनिफेस्ट कॉपी करने का फैसला किया और जो कुछ भी मैं बदलना चाहता था उसे छोड़कर (लगभग) सबकुछ हटा दिया (मेरे मामले में यह Google मानचित्र एपीआई कुंजी था)। मैंने यह सुनिश्चित करने के लिए "टूल्स: प्रतिस्थापन" विधि का उपयोग किया था, जिसे मैंने वांछित रखा था। सबसे अच्छा समाधान नहीं है लेकिन मेरे आसपास काम करने के लिए एक काम ... – Kasium

+1

एक बग लगता है, जो तय किया जा रहा है: https://code.google.com/p/android/issues/detail?can=2&start= 0 और num = 100 और q = और colspec = आईडी% 20 टाइप% 20 स्टेटस% 20 ऑनर% 20 सारांश% 20 स्टर्स और ग्रुपबी = और सॉर्ट = और आईडी = 72829 – OriolJ

उत्तर

4

ग्रेडल प्लगइन 0.13.0 के साथ आज से शुरू हो रहा है पहले से ही काम कर रहा है।

7

यह अलग उत्पाद जायके के लिए मेरे समाधान है

productFlavors { 
normal { 
    applicationId "mobi.cwiklinski.urc" 
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.provider\"" 
    resValue "string", "authorities", "mobi.cwiklinski.urc.provider" 
} 
adfree { 
    applicationId "mobi.cwiklinski.urc.adfree" 
    buildConfigField "String", "providerAuthority", "\"mobi.cwiklinski.urc.adfree.provider\"" 
    resValue "string", "authorities", "mobi.cwiklinski.urc.adfree.provider" 
} 

}

AndroidManifest.xml

और बस इतना ही है - अलग में उत्पाद स्वाद आपको विभिन्न संसाधन मूल्य मिलेगा।

+0

अच्छा, उत्तर के लिए धन्यवाद, लेकिन मेरे प्रश्न के साथ इसका कोई लेना-देना नहीं है .. मैं पूछ रहा था कि क्या मैं इसे किसी भी तरह उपयोग कर सकता हूं बिल्ड प्रकारों में और स्वादों में नहीं – Billda

+0

आप इन दो चीजों को जोड़ सकते हैं - आपको चार एपीके मिलेंगे और आप जो दो प्राप्त करना चाहते हैं उन्हें चुनें ... –

+0

मुझे resValue नहीं पता था, यह वास्तव में सहायक है और इसका उपयोग ' manifestPlacehold 'जो मैं उन्हें काम नहीं कर सका। – tasomaniac

संबंधित मुद्दे