यह कैसे जांचें कि क्या ग्रेडल निर्भरता का नया संस्करण है


232

एंड्रॉइड स्टूडियो में जब मैं +संस्करण संख्या (जैसे com.android.support:recyclerview-v7:21.+) में उपयोग करता हूं तो मुझे "वर्जन नंबर में + उपयोग से बचें" चेतावनी मिलती है। जब मैं एक विशिष्ट संस्करण संख्या का उपयोग करता हूं तो मैं हमेशा नवीनतम संस्करण का उपयोग नहीं कर सकता। मेरी परियोजना में बहुत सारी निर्भरताएं हैं। अगर एक निर्भरता का एक नया संस्करण है, तो मैं कैसे जांच सकता हूं? क्या एंड्रॉइड स्टूडियो प्लग-इन कुछ ऐसा है- जब एक निर्भरता का एक नया संस्करण है तो मुझे सूचित करें?

संपादित करें: एंड्रॉइड स्टूडियो पुराने एंड्रॉइड सपोर्ट लाइब्रेरी और Google प्ले सेवाओं पर प्रकाश डालता है। लेकिन यह अन्य कस्टम पुस्तकालयों के लिए उपलब्ध नहीं है।

यहां छवि विवरण दर्ज करें


लाइब्रेरी को अपडेट करने वाले डेवलपर्स के लिए देखें: बिंट्रे में नए संस्करण के लिए लाइब्रेरी कैसे अपडेट करें?
सुरगाछ

2
कम से कम एंड्रॉइड 3.0 में, कस्टम लाइब्रेरी के लिए अपडेट अब उसी सूचना को दिखाते हैं जैसे आपके पास समर्थन लाइब्रेरी के लिए आपकी प्रश्न छवि में है।
सूरगाछ 3

@ अनुराग यह मेरे लिए एंड्रॉइड स्टूडियो 3.0.1 में कुछ निर्भरता के लिए काम नहीं करता है
रेमी

हम नए पुस्तकालय संस्करण की जाँच के लिए gradleplease.appspot.com का उपयोग कर सकते हैं
एलेक्स किसेल

जवाबों:


187

यह अब लिंट चेक के रूप में एंड्रॉइड स्टूडियो में बिल्ट-इन है। आप इसे यहाँ सक्षम कर सकते हैं:

सेटिंग्स> संपादक> निरीक्षण> "नए पुस्तकालय संस्करण उपलब्ध"

इस निरीक्षण के लिए विवरण:

नए पुस्तकालय संस्करण उपलब्ध हैं

यह डिटेक्टर केंद्रीय भंडार के साथ यह देखने के लिए जांचता है कि क्या इस परियोजना द्वारा उपयोग की जाने वाली निर्भरता के लिए नए संस्करण उपलब्ध हैं। यह ग्रेडलेडिपेंडेंसी चेक के समान है, जो एंड्रॉइड एसडीके टूल्स और लाइब्रेरी में उपलब्ध नए संस्करणों की जांच करता है, लेकिन यह किसी भी मेवेनसेन्ट्रल निर्भरता के साथ काम करता है, और हर बार लाइब्रेरी से जुड़ता है, जो इसे अधिक लचीला बनाता है, लेकिन धीमा भी है

मंदी की वजह से मैं इसे समय-समय पर चलाने के बजाय इसे समय-समय पर मैन्युअल रूप से चलाने की सिफारिश कर सकता हूं। आप यह कर सकते हैं:

विश्लेषण> "नाम से निरीक्षण चलाएँ"

फिर "नया लाइब्रेरी संस्करण उपलब्ध" की खोज करें, और इसे अपने मॉड्यूल पर चलाएं।

संपादित करें : ऊपर केवल एंड्रॉइड स्टूडियो 2.3 के रूप में काम करना चाहिए। यदि आप एक पुराने संस्करण पर हैं (आपको अपडेट करना चाहिए) तो निम्नलिखित मदद कर सकते हैं:

ध्यान दें कि आपके पास इसे मैन्युअल रूप से चलाने के लिए आपके पास निरीक्षण सक्षम होना चाहिए - इसलिए (एंड्रॉइड स्टूडियो 2.0 बीटा 2 के अनुसार) आपको सेटिंग में निरीक्षण को खोजने की आवश्यकता है, इसे सक्षम करें, फिर इसे नाम से चलाएं, फिर इसे अक्षम करें ( पिछले प्रदर्शन को हासिल करने के लिए)।


4
मुझे नहीं पता कि मैं कुछ गलत कर रहा हूं, लेकिन मेरे लिए काम नहीं किया गया
osrl

1
मेरे लिए भी ऐसा ही है, दायरे MavenCentral पर नहीं है। क्या आपके रेट्रोफिट संस्करण को इस तरह परिभाषित किया गया है? मेरा है, और यह इसे या तो नहीं मिल सकता है def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
असेंबल

1
परिभाषित संस्करण स्ट्रिंग को खोजने में असमर्थ था। यह खोजने में सक्षम था com.squareup.okhttp:okhttp:2.7.2। इसके अलावा2.0.0-beta4
20

2
यह "निरीक्षण" टैब में उपलब्ध अपडेट दिखाता है, लेकिन यह बिल्ड.ग्रेड में चेतावनी के रूप में इसे उजागर नहीं करता है। मुझे अभी तक ऐसा समाधान नहीं मिला है जो ऐसा करता हो।
टिआगो

3
रिपोर्ट करने के लिए इस जवाब पर वापस आना पड़ा कि यह केवल मेवेनसेन्ट्रल निर्भरता के लिए काम करता है। इसका मतलब है कि Jitpack या अन्य स्रोतों के रिपॉजिटरी स्वचालित रूप से अपडेट नहीं किए जाते हैं। सभी निर्भरताओं के नवीनतम संस्करण को प्राप्त करने की सही विधि इस उत्तर में है [ stackoverflow.com/questions/28538824/… (यहाँ)
रे ली

274

अद्यतन (05/23/18):

Android Studio का नया संस्करण प्रोजेक्ट संरचना संवाद में संस्करण अद्यतन नहीं दिखाता है। इसके बजाय, एडम-एस का उत्तर एंड्रॉइड स्टूडियो 3+ के लिए सही है

विश्लेषण> "नाम से निरीक्षण चलाएँ"

फिर " Newer Library Versions Available" खोजें

प्रीवियस वे:

के रूप में Android Studio 2.2, एक नया Project Structureसंवाद निर्भर करता है कि आपके ऐप निर्भरता की सूची का उपयोग स्थानीय और दूरस्थ रिपॉजिटरी से उपलब्ध अपडेट के साथ कर रहा है।

  • इस पर जाकर सक्रिय Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimentalकरें Use new Project Structure dialog(धन्यवाद @jessehensold)
  • फिर इसे ओपन करके जाएं File > Project Structure > Messages

यहां छवि विवरण दर्ज करें

एंड्रॉइड स्टूडियो के पुराने संस्करण के लिए, नीचे अन्य प्रतिक्रियाएं देखें।


1
संपादन के बारे में; यह एंड्रॉइड-स्टूडियो के बारे में था, क्योंकि मैं एक एंड्रॉइड स्टूडियो प्लगइन की तलाश कर रहा था। उत्तर के लिए धन्यवाद, लेकिन मैंने पहले ही इसे देख लिया है।
ऑक्सले

11
यह अब एंड्रॉइड स्टूडियो में मौजूद नहीं है (बीटा 2 का उपयोग करके)।
गोंजालो

8
मुझे प्राथमिकताएँ> बिल्ड, एक्ज़ीक्यूशन, परिनियोजन> ग्रेडल> प्रायोगिक में जाना था और 'नए प्रोजेक्ट स्ट्रक्चर डायलॉग का उपयोग करें' की जाँच करें
jessehensold

1
"लागू करें" बटन सक्षम करने के लिए "निर्भरता" टैब पर जाना होगा। कुछ बग?
मटुस्स काफलोव्स्की

2
मैंने एंड्रॉइड स्टूडियो 2.3 के साथ यह कोशिश की, लेकिन संवाद का Dependenciesटैब Project Structureमेरे प्रोजेक्ट की कोई निर्भरता नहीं पाता है।
jakub.g

58

एक तरफ से एंड्रॉयड स्टूडियो के अंतर्निहित सुविधा, वहाँ अच्छा Gradle प्लगइन बुलाया है Gradle संस्करण प्लगइन करता है कि आप क्या चाहते हैं सादा Gradle विस्तार तो नहीं किया जा रहा किसी भी विशिष्ट आईडीई के लिए बांड, इसलिए Gradle का उपयोग कर किसी भी परियोजना के लिए उपयोगी के लाभ के साथ,।

ग्रेड वर्जन प्लगइन मानव पठनीय सादे पाठ के रूप में रिपोर्ट बना सकता है, लेकिन इसे स्वचालित प्रसंस्करण के लिए JSON या XML के रूप में भी डंप कर सकता है।

एक बार आपकी फ़ाइल में जोड़ दिए जाने के बाद, मानक उपयोग अधिक दिखेगा:

> ./gradlew dependencyUpdates

यह इस तरह दिखने वाली परियोजना निर्भरता रिपोर्ट का उत्पादन करेगा:

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

व्यापक उपयोग उदाहरणों के लिए डॉक्स देखें ।


नोट: इस उत्तर (2017-01) को लिखने के रूप में, 0.17.0 से अधिक संस्करण योजना पाठ प्रारूप में अधिक उत्पादन करते हैं, झुकाव करते हैं। प्रोजेक्ट URL इस प्रकार पूरे आउटपुट को फूला हुआ बनाते हैं। यदि आप, जैसा कि मुझे लगता है कि बेकार है, या तो संस्करण 0.17.0 से चिपके रहते हैं या ऐसे संस्करण का उपयोग करते हैं जो इस समस्या को किसी भी तरीके से संबोधित करते हैं (यदि ऐसा संस्करण मौजूद है;)


3
बहुत बढ़िया! एक सामान्य जावा परियोजना के लिए यह देख रहे हैं। लिंट की एंड्रॉइड विशिष्टता के बिना एक अच्छा सामान्य समाधान।
ट्वीस्ट्रीमोब

Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.इसे चलाते समय मुझे त्रुटि मिली ।
फल

बग रिपोर्ट यहां भरें: github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski

2
"नए लाइब्रेरी संस्करण उपलब्ध" विधि काम नहीं करती थी, लेकिन यह एकदम सही है! (मैं उपयोग करने के लिए कई चर फ़ाइलों के साथ चर संस्करणों के लिए)
norbDEV

क्या आप उस प्लगइन की तस्वीर जोड़ सकते हैं? मैंने इसे किसी सूची में नहीं पाया है।
कूलमाइंड

14

परिभाषित - आधुनिक तरीके के लिए स्वीकार किए जाते हैं

नीचे दिया गया टूल Android Studio / Gradle के नए संस्करणों पर काम नहीं करता है और इसका लेखक अब इसे बनाए नहीं रखता ( 30/10/2016 के अनुसार )। इसलिए, स्वीकृत उत्तर में प्रस्तुत समाधान का उपयोग तब तक किया जाना चाहिए जब तक कि एंड्रॉइड स्टूडियो के पुराने संस्करण के साथ काम न करें।


जनवरी 2016 तक, एंड्रॉइड स्टूडियो के लिए एक प्लगइन है जो कुछ ऐसा ही करता है, जिसे डिपेंडेंसी वर्जन चेकर कहा जाता है , और जिनके स्रोत गिटहब पर पाए जा सकते हैं ।

यह अंतर्निहित इंटरफ़ेस (सेटिंग्स> प्लगइन्स> ब्राउज़ रिपॉजिटरी ...) के माध्यम से जोड़ा जा सकता है:

यह देशी इंटरफ़ेस के अंदर कैसा दिखता है

स्थापना और पुनः आरंभ करने के बाद, UI में निम्न टैब दिखाई देता है:

नया UI टैब जो पुनरारंभ होने के बाद दिखाई देता है।

तब संबंधित build.gradleको वर्जनचैकर पैनल के बाईं ओर चिपकाया जाना चाहिए, और Version Checkबटन दबाया जाना चाहिए। परिणाम एक तालिका है जो दाईं ओर दिखाई देती है, जिसमें पिछली स्क्रिप्ट में उपयोग किए गए पुस्तकालयों के नवीनतम संस्करण शामिल हैं (जैसा कि ऊपर की छवि में दिखाया गया है)।


यहां तक ​​कि अगर यह वही है जो मैं पहली जगह में देख रहा था, तो यह अपेक्षा के अनुरूप काम नहीं करता है। मैंने इसके बारे में जीथब रेपो में एक मुद्दा खोला है। github.com/takuaraki/D
dependenciesVersionChecker

जब मैंने "चेक वर्जन" पर क्लिक किया, तो मैंने यह कोशिश की और एक सामान्य त्रुटि / विफलता संदेश बैलून मिला
ग्रेग एननिस

@GregEnnis प्लगइन के नवीनतम संस्करण के साथ एक समस्या है। या तो एक पुराने का उपयोग करें या एक अद्यतन की प्रतीक्षा करें ...
Dev-iL

11

फ़ाइल> प्रोजेक्ट संरचना देखें, फिर "सुझाव" पर क्लिक करें। मुझे पता है, यह समाधान हेमंत शर्मा और जेरीमास गेर्सिच द्वारा सुझाया गया था, लेकिन एंड्रॉइड स्टूडियो ने इसे 3.4.1 संस्करण में बदल दिया है।

यहां छवि विवरण दर्ज करें


किसी और को यह स्क्रीन सिर्फ एंड्रॉइड स्टूडियो 3.5 पर खाली हो रही है?
निकोला बेगिन

@ NicolaBeghin, मैंने अभी खाली प्रोजेक्ट पर जाँच की है और 4 सुझाव प्राप्त किए हैं। हां, एक शब्द था, जब उसने जुलाई में सुझाव नहीं दिखाए, लेकिन उन्होंने इस बग को ठीक कर दिया। मुझे लगता है, यह Google सर्वर की समस्या है, यह कभी-कभी हो सकता है।
कूलमाइंड

समर्थन नहीं करता हैGradle KTS
व्लाद

2

समर्थन पुस्तकालय (com.android.support) निर्भरता के लिए, एक बेहतर विकल्प है - andle

यह jcenter और maven केंद्र को भी क्वेरी कर सकता है।

एक साथ सभी प्रोजेक्ट को अपडेट करने के लिए सरल तीन चरण।

1. स्थापित करें:

    $ sudo pip install andle

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

    $ andle setsdk -p <sdk_path>

3. अद्यतन प्रतिधारण:

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

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

--remote: jcenter और mavenCentral में चेक संस्करण

-ग्रेड: चेक ग्रेड संस्करण

अधिक जानकारी के लिए https://github.com/Jintin/andle देखें


केवल समर्थन पुस्तकालयों के लिए?
ऑक्टेला

@osrl अगर आप जोड़ते हैं -remote या -r यह jcenter पर संस्करण को पार्स कर देगा।
जिंतिन

0

मैं इसी समस्या से निपट रहा था और https://stackoverflow.com/a/35371234/6412430 उत्तर की कोशिश की

एंड्रॉइड स्टूडियो 3.4.1 पर मेरे लिए वास्तव में क्या काम किया गया था:

File -> Project Structure -> Dependencies

एक बार जब आप इस बिंदु पर पहुँच जाते हैं, तो आपके प्रोजेक्ट या मॉड्यूल में शामिल सभी निर्भरताएं सूचीबद्ध हो जाएंगी। जो पुराने हैं वे अंडरस्कोर होंगे और जब आप किसी एक का चयन करते हैं, तो इसका विवरण आपको अपडेट करने योग्य (यदि आप इसे घोषणा से अलग कर चुके हैं) या निर्भरता के विकल्प देते हुए दिखाया जाएगा।

देर से ही सही लेकिन मेरे लिए यही काम आया।


मैंने भी इस तरह से पाया। अजीब बात है कि किसी ने शून्य से चिह्नित किया।
कूलमाइंड

-1

अपने प्रोजेक्ट निर्भरता के लिए अद्यतन या अनुशंसित होने के लिए एंड्रॉइड प्रोजेक्ट के समान होना चाहिए

FILE -> Project Structure -> MODULES(app) -> Dependencies

जब आप निर्भरता टैब पर पहुंचते हैं तो +बटन पर क्लिक करें जो विंडो के ऊपरी दाएं कोने पर रखा गया है। जब आप +सेलेक्ट पर क्लिक Library Dependencyकरेंगे Choose Library Dependencyतो सर्च बॉक्स में आपकी निर्भरता के लिए सर्च के लिए नई विंडो खुलेगी , सभी सूचीबद्ध एंड्रॉइड निर्भरता अपडेट हो जाती हैं।


धन्यवाद, लेकिन इस सूची में वे पुस्तकालय भी शामिल हैं जिनका मैं उपयोग नहीं करता हूं और कभी-कभी वे उपयोग नहीं करते हैं जो मैं उपयोग करता हूं। इसके अलावा Gson com.google.code.gson:gson:2.2.4जबकि वास्तव में यह हैcom.google.code.gson:gson:2.8.5
CoolMind

कभी-कभी निर्भरता संगत श्रेणीबद्ध संस्करण के साथ काम करती है, कृपया जांचें कि क्या आप अपने प्रोजेक्ट स्तर के ग्रेडेल में अपडेटेड ग्रेडेल का उपयोग कर रहे हैं
हेमंत शर्मा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.