2014-09-25 11 views
13

मैं हमेशा जोड़ दिया है निर्भरता Gradle में उपयोग करने के लिए एक निर्भरता का नवीनतम संस्करण है क्या जांच करने के लिए कैसे:इस तरह

dependencies { 
    compile 'com.android.support:mediarouter-v7:19.+' 
} 

लेकिन एंड्रॉयड स्टूडियो के हाल के संस्करणों में, वे + का उपयोग नहीं करने की सलाह देते हैं क्योंकि यह त्रुटियों का कारण बन सकता है। कैसे पता चलेगा नवीनतम संस्करण क्या है? मैं धीरे-धीरे शिकायत करने तक 19.y.x के हर संयोजन का प्रयास कर सकता हूं, लेकिन असली तरीका क्या है?

संपादित करें: कभी-कभी, that page मुझे इसे समझने में सहायता करता है।

उत्तर

21

अन्य तरीके हो सकते हैं, लेकिन यहाँ मैं क्या उपयोग है:

आप build.gradle संकलन लाइन में अपने पुस्तकालय की संस्करण संख्या की जगह नवीनतम संस्करण एंड्रॉयड स्टूडियो का उपयोग करके पता कर सकते हैं , बस + के साथ, और विंडो के ऊपरी दाएं कोने में Sync Now पर क्लिक करें।

अपने मामले में

, उदाहरण के लिए

dependencies { compile 'com.android.support:mediarouter-v7:+' }

एंड्रॉयड स्टूडियो पॉप अप होगा एक संकेत/बल्ब है, जो विकल्प हैं Replace with specific version आप क्लिक कर सकते हैं, जो पूर्ति में जगह + के नवीनतम संस्करण होगा । कृपया screeshot नीचे देखें:

android studio hint

यह पहली बार काम नहीं होता है, Gradle अपने सिंक को पूरा करते हैं, और पुन: प्रयास (+ या किसी भी फाइल संशोधन करना होगा की जगह +, अब फिर से सिंक क्लिक करें और संकेत बल्ब दिखाई देगा)।

उदाहरण के लिए, अपने पुस्तकालय के लिए, मैं तो बस इस लाइन compile 'com.android.support:mediarouter-v7:+' मेरी निर्भरता के तहत चिपकाया और उपरोक्त प्रक्रिया का पालन किया, एंड्रॉयड स्टूडियो का उपयोग करने के लिए + संस्करण की घोषणा में संस्करण

नीचे

.

+0

यह स्वतः v7: 19.1.0 के साथ पूरा हुआ, लेकिन अगर मैं मैन्युअल रूप से v7: 19.9.0 दर्ज करता हूं, तो यह भी काम करता है (संकलित और चलाएं)। – mbmc

+0

अगर मैं 19.9.0 का उपयोग करता हूं तो यह मुझे त्रुटि देता है, 1 9 .1.0 के साथ ठीक काम करता है। [कृपया इसे देखें] (http://i.imgur.com/3BZkmbi.png)। मैंने इंस्टॉलेशन रिपॉजिटरी लिंक पर क्लिक किया, लेकिन त्रुटि देना जारी रखा। अगर मैं 1 9 .1.0 का उपयोग करता हूं तो दूर जाता है। – ashoke

+0

यह अजीब है ... आप किस संस्करण का उपयोग कर रहे हैं? मैं 0.8.9 पर हूँ। मैं वास्तव में किसी भी 19.x.y डाल सकता हूं, यह काम करेगा। 20.0.0 भी काम करता है, लेकिन 20.0.1 मुझे आपके जैसा ही त्रुटि देगा। – mbmc

10

नवीनतम संस्करण पर निर्भर करना वास्तव में एक खतरनाक चीज है। आपका निर्माण कुछ भी बदले बिना तोड़ सकता है, सिर्फ इसलिए कि कुछ लाइब्रेरी पिछली संगतता को तोड़ देती है।

लाइब्रेरी का नया संस्करण कब पता है सबसे आसान तरीका Bintray में नई संस्करण अधिसूचनाओं की सदस्यता लेना है।

बस पैकेज पृष्ठ पर "देखें" बटन पर क्लिक करें और हर बार नया संस्करण बाहर होने पर आपको एक ईमेल प्राप्त होगा। फिर आप निर्भरता को अपडेट करने में सक्षम होंगे, इसे का परीक्षण करें, और उसके बाद केवल नए संस्करण के साथ बिल्ड स्क्रिप्ट प्रतिबद्ध करें।

Watch package in Bintray

+0

यह एक वैध तरीका हो सकता है, लेकिन निर्दिष्ट मामले में com.android.support:mediarouter एक एंड्रॉइड समर्थन लाइब्रेरी है, और उन्हें खोजने के लिए सबसे अच्छी जगह Bintray या Maven नहीं है। –

+2

यह एसडीके के साथ आता है, इसलिए मुझे यकीन नहीं है कि इसमें क्या समस्या है? आपको केवल नवीनतम एसडीके चाहिए, और libs फ़ोल्डर में जार फ़ाइल को देखें। यह आपके ज्ञान के बिना एक नए संस्करण के साथ "आश्चर्य" नहीं कर सकता है। नवीनतम को जानने के लिए किसी को एक विशेष उपकरण की आवश्यकता क्यों है? – JBaruch

+0

एसडीके के साथ आने वाले libs/jars से, यह बताने के लिए कि किस संस्करण का उपयोग करना है? – mbmc

0

से बचें साथ में भर दिया।

आप andle को आजमा सकते हैं कि यह निर्भर करता है कि निर्भरता तिथि से बाहर है, बिल्ड टूल संस्करण और एसडीके संस्करण भी है।

सरल तीन कदम:

1।स्थापित:

$ sudo pip install andle 

2. सेट एसडीके:

$ andle setsdk -p <sdk_path> 

3. अद्यतन depedency:

$ andle update -p <project_path> [--dryrun] [--remote] 

--dryrun: कंसोल में केवल प्रिंट परिणाम

--remote : Jcenter और mavenCentral

+1

प्रारूप को संशोधित करने में मेरी मदद करने के लिए धन्यवाद – Jintin

0

एशोक का उत्तर सही है यदि आप नवीनतम संस्करण चाहते हैं तो संस्करण को जांचें।

compile 'com.android.support:appcompat-v7:21.0.+' 

रहे हैं:

लेकिन आप सिर्फ को बदलने के लिए '+' संस्करण से चाहते हैं, तो आप वर्तमान में का उपयोग कर (वजह संरक्षण अपने आप बग के खिलाफ भविष्य अद्यतन में)

जैसे हैं

compile 'com.android.support:appcompat-v7:21.0.3' 

(लेकिन 23.0.1 का उपयोग नहीं)

इस सबसे आसान तरीका है, कोई सॉफ्टवेयर की जरूरत है:

रन

$ ./gradlew clean tasks --debug > ~/whatever.txt 

तो देखने के लिए "com.android.support:appcompat-v7:21.0।"

आप नीचे दिए गए कुछ लाइन

"Maven रिपोजिटरी से com.android.support:appcompat-v7:21.0.3 का उपयोग करना" देखेंगे

2

के रूप में पहले से ही कुछ अन्य उत्तर आप उपयोग नहीं करना चाहिए ने उल्लेख + निर्भरता में क्योंकि यह अप्रत्याशित बिल्डों का कारण बन सकता है, इसलिए यदि आप एक बार नया अपडेट उपलब्ध हो जाते हैं तो पहले यह आपके बेहतर परीक्षण का परीक्षण करता है।

एंड्रॉइड स्टूडियो 2.2 और ऊपर के साथ परियोजना संरचना आपको नवीनतम निर्भरताओं को उपलब्ध कराएगी।

  1. एंड्रॉयड स्टूडियो में जाकर, उसे सक्रिय करें> सेटिंग> निर्माण, निष्पादन, तैनाती> Gradle> प्रायोगिक और उपयोग नई परियोजना संरचना संवाद
  2. तब फ़ाइल> परियोजना संरचना>Image showing updates dialog जाकर इसे खोलने की जाँच संदेश

Original Answer

+0

एंड्रॉइड स्टूडियो 3.1 कैनरी 5 पर चलाया जा रहा है, क्या कोई पुष्टि कर सकता है? –

0

हाल ही में मैं इस पाया है, File -> Project Structure

को

जाओ देता है

चयन करें Module, जहां आप निर्भरता जोड़ना चाहते हैं।

जाओ Dependencies टैब

क्लिक करें + और Library Dependency

चुनें जो लाइब्रेरी आप सूची से की जरूरत है चुनने के लिए।

(वहाँ भी खोजें लिए एक विकल्प है, हालांकि कभी नहीं की कोशिश की।)

Thats यह।

हो गया।

धन्यवाद।

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