2013-08-07 9 views
16

कहलाता है जब डेबग इकट्ठा होता है, तो जिन परियोजनाओं पर मैं निर्भर करता हूं, उनके रिलीज संबंधित कार्यों को कॉल किया जाता है।एंड्रॉइड ग्रेडल बिल्ड: रनिंग इकट्ठा करें डिबग परियोजना निर्भरताओं के रिलीज कार्यों को

उदा। मेरे पास 'x' नामक एक प्रोजेक्ट है जो 'y' पर निर्भर करता है।

जब मैं gradle assembleDebug यह कहता है y: mergeReleaseProguardFiles, packageReleaseAidl, आदि ... आदि ..

+0

मैं इसके बारे में भी उलझन में हूं। आपने अभी यह जवाब प्राप्त नहीं किया है (यह एक साल पहले देखा गया था)? यदि मैं अपने आप से कई मॉड्यूल बनाते हैं, जैसे: मॉड्यूलए: इकट्ठा करें डिबग, मॉड्यूलबी: इकट्ठा करें केवल एक ही रिलीज से संबंधित कार्य को डिबग करें प्रीरलीजबिल्ड (जो कि किसी कारण से इकट्ठा करने का हिस्सा है, तो यह सामान्य होना चाहिए), लेकिन जब मैं करता हूं: मॉड्यूलएक्स : इकट्ठा करें डेबग (जो मॉड्यूल ए/बी पर निर्भर करता है) कई रिलीज कार्यों को बुलाया जाता है, जैसे आपने अनुभव किया। कारण मुझे परवाह है क्योंकि ऐसा लगता है कि यह बिल्ड टाइप्स बनाता है {रिलीज {runProguard सच इस्तेमाल किया जा रहा है जिसे मैं डीबग बिल्ड के लिए नहीं चाहता हूं। – riper

+0

हां, कभी जवाब नहीं मिला :) – Guy

+0

क्या यह किसी भी बिल्ड फ़ाइल के लिए होता है (एंड्रॉइड स्टूडियो में एक नई रिक्त प्रोजेक्ट बनाने का कहना है) या यह केवल विशिष्ट बिल्ड फाइलों के साथ है? यदि उत्तरार्द्ध, कृपया अपना प्रश्न संपादित करें और विवरण जोड़ें। साथ ही, आप यह निर्धारित कैसे कर रहे हैं कि रिलीज कार्य चल रहे हैं? –

उत्तर

3

संपादित करें: अब सही नहीं है, के साथ एंड्रॉयड Gradle प्लगइन 3.x.

पुस्तकालय भी debug और release कलाकृतियों को प्रकाशित करते हैं। अगर परियोजना में स्वाद या कस्टम प्रकार हैं, तो वे भी बनाए जाते हैं। और मॉड्यूल में, यह स्वचालित रूप से वेरिएंट से मिलान करने का प्रयास करता है। यदि मिलान नहीं किया गया है, तो आपको मॉड्यूल में वेरिएंट से मिलान करने के लिए matchingFallback प्रदान करने की आवश्यकता है। अधिक जानकारी यहां पाया जा सकता: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors


एंड्रॉयड पुस्तकालय मॉड्यूल केवल "रिलीज" का निर्माण प्रकार प्रकाशित करती है। उनके पास "डीबग" बिल्ड प्रकार नहीं है। यहां तक ​​कि आपका एप्लिकेशन मॉड्यूल डीबग संस्करण भी बनाता है, यह लाइब्रेरी के रिलीज़ संस्करण का उपयोग करेगा।

आप सक्षम कर सकते हैं "डिबग" अपने मॉड्यूल के build.gradle फ़ाइल में निम्न का उपयोग कर पुस्तकालय निर्भरता के प्रकार का निर्माण:

android { 
    publishNonDefault true 
    ... 
} 

फिर जब आप अन्य मॉड्यूल में है कि निर्भरता का उपयोग कर रहे हैं, तो आप इस तरह उपयोग करना चाहिए:

dependencies { 
    releaseCompile project(path: ':moduleY', configuration: 'release') 
    debugCompile project(path: ':moduleY', configuration: 'debug') 
} 

मैं अपने आवेदन में एक ही चाल का उपयोग कर रहा हूं। मेरे पास एक साझा मॉड्यूल है और मैं मॉड्यूल के डीबग संस्करण का उपयोग करता हूं। यहां विवरण प्राप्त करें:

https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90

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