Maven, JCenter और JitPack का उपयोग करके किसी भी GitHub लाइब्रेरी को Android स्टूडियो में जोड़ें

लेखक: Lewis Jackson
निर्माण की तारीख: 13 मई 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
Maven, JCenter और JitPack का उपयोग करके किसी भी GitHub लाइब्रेरी को Android स्टूडियो में जोड़ें - क्षुधा
Maven, JCenter और JitPack का उपयोग करके किसी भी GitHub लाइब्रेरी को Android स्टूडियो में जोड़ें - क्षुधा

विषय


बहुत कम Android परियोजनाएं एक द्वीप हैं! एंड्रॉइड परियोजनाओं के बहुमत में कई अन्य घटकों पर निर्भरता है, जिसमें तीसरे पक्ष के एंड्रॉइड लाइब्रेरी शामिल हैं।

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

Android पुस्तकालयों को खोजने के लिए सबसे अच्छे स्थानों में से एक, GitHub है। हालाँकि, अपने GitHub पृष्ठ से और आपकी परियोजना में एक पुस्तकालय प्राप्त करना हमेशा सीधा नहीं होता है, खासकर जब से कई अलग-अलग रिपॉजिटरी हैं जो डेवलपर्स अपने GitHub प्रोजेक्ट को वितरित करने के लिए उपयोग कर सकते हैं - और यह हमेशा स्पष्ट नहीं हो सकता है कि कौन से रिपॉजिटरी डेवलपर का उपयोग कर रहा है!


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

दूरस्थ निर्भरता जोड़ना

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

एक पुस्तकालय को दूरस्थ निर्भरता के रूप में जोड़ना आमतौर पर आपकी परियोजना में पुस्तकालय का कोड प्राप्त करने का सबसे तेज़ और आसान तरीका है, इसलिए यह वह तरीका है जिसे हम पहले देखने जा रहे हैं। जब आप किसी लायब्रेरी को दूरस्थ निर्भरता के रूप में जोड़ते हैं, तो ग्रेडल सुनिश्चित करेगा कि निर्भरता के पास वह सब कुछ है जो उसे चलाने में सक्षम होना चाहिए, जिसमें कोई भी शामिल है सकर्मक निर्भरताएं, इसलिए आप आमतौर पर जहां संभव हो, एक पुस्तकालय को दूरस्थ निर्भरता के रूप में जोड़ना चाहते हैं।


एक दूरस्थ निर्भरता जोड़ने के लिए, आपको ग्रेडल को दो जानकारी प्रदान करनी होगी:

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

आदर्श रूप से, लाइब्रेरी का GitHub पृष्ठ आपको यह सब जानकारी प्रदान करेगा। वास्तव में यह हमेशा ऐसा नहीं होता है, लेकिन सबसे अच्छा मामला परिदृश्य के साथ शुरू करते हैं और मानते हैं कि पुस्तकालय के GitHub पृष्ठ में यह जानकारी शामिल है।

JCenter के साथ एक दूरस्थ निर्भरता जोड़ना

StyleableToast एक पुस्तकालय है जो आपको पृष्ठभूमि के रंग, कोने के त्रिज्या और फ़ॉन्ट को बदलने और आइकन जोड़ने सहित एंड्रॉइड के हर हिस्से को अनुकूलित करने देता है। यह आपको अपने समर्पित ’इंस्टालेशन’ अनुभाग में, इस पुस्तकालय को अपनी परियोजना में जोड़ने के लिए आवश्यक सभी जानकारी भी प्रदान करता है। यहां, हम देख सकते हैं कि यह परियोजना JCenter के माध्यम से वितरित की गई है।

जब आप Android Studio की नवीनतम रिलीज़ के साथ एक प्रोजेक्ट बनाते हैं, तो आपकी परियोजना की बिल्ड.ग्रेड फ़ाइलें JCenter को सपोर्ट करने के लिए पहले से ही सेटअप होती हैं। यदि आप अपनी परियोजना-स्तरीय बिल्ड.ग्रेड फ़ाइल खोलते हैं, तो आप देखेंगे कि JCenter पहले से ही / allprojects / repositories 'अनुभाग में शामिल है:

allprojects {रिपॉजिटरी {jcenter ()}}

ध्यान दें, प्रोजेक्ट-लेवल बिल्ड.ग्रेड फ़ाइल में दो 'रिपॉजिटरी' ब्लॉक होते हैं, लेकिन 'बिल्डडस्क्रिप्ट / रिपॉजिटरी' ब्लॉक वह होता है, जहाँ आप परिभाषित करते हैं कि ग्रैडल इस बिल्ड का प्रदर्शन कैसे करता है। आपको इस अनुभाग में कोई मॉड्यूल निर्भरता नहीं जोड़ना चाहिए।

चूँकि आपका प्रोजेक्ट JCenter की जाँच करने के लिए पहले से ही कॉन्फ़िगर किया गया है, केवल एक चीज जो हमें करने की आवश्यकता है वह है मॉड्यूल-बिल्ड build.gradle फ़ाइल में हमारा संकलित विवरण जोड़ना।

एक बार फिर, StyleableToast हमें ठीक वही जानकारी प्रदान करता है जिसकी हमें आवश्यकता होती है, इसलिए बस StyleableToast के GitHub पेज से संकलन स्टेटमेंट को कॉपी करें, और इसे अपने ग्रेड फ़ाइल में पेस्ट करें:

निर्भरताएँ {संकलित com.muddzdev: styleabletoast: 1.0.8}

अपनी ग्रेड फ़ाइलों को सिंक करें, या तो banner सिंक ’बैनर पर क्लिक करके, या टूलबार में ग्रेड फ़ाइलों के आइकन के साथ le सिंक प्रोजेक्ट का चयन करके। ग्रैडल तब JCenter सर्वर को यह जांचने के लिए क्वेरी करेगा कि Styleabletoast लाइब्रेरी मौजूद है, और उसकी सभी फ़ाइलों को डाउनलोड करें। अब आप इस लाइब्रेरी का उपयोग शुरू करने के लिए तैयार हैं!

2. मावेन सेंट्रल के साथ एक दूरस्थ निर्भरता जोड़ना

वैकल्पिक रूप से, यदि प्रोजेक्ट का GitHub पृष्ठ बताता है कि यह लाइब्रेरी मावेन सेंट्रल के माध्यम से वितरित की गई है, तो आपको ग्रेड को मावेन सेंट्रल की जांच करने के लिए बताने की आवश्यकता होगी।

अपनी परियोजना-स्तर build.gradle फ़ाइल खोलें और Maven Central को "allprojects" ब्लॉक में जोड़ें:

allprojects {रिपॉजिटरी {mavenCentral ()}}

यहां से, बाकी प्रक्रिया बिल्कुल वैसी ही है: अपनी मॉड्यूल-स्तरीय बिल्ड.ग्रेड फ़ाइल खोलें, कंपाइल स्टेटमेंट जोड़ें और ग्रैडल के साथ सिंक करें।

3. एक दूरस्थ निर्भरता जोड़ना जो अपने स्वयं के सर्वर पर होस्ट की गई है

कभी-कभी, आप एक परियोजना का सामना कर सकते हैं जो अभी भी JCenter या Maven Central के माध्यम से वितरित की जाती है, लेकिन डेवलपर ने अपने प्रोजेक्ट को अपने सर्वर पर होस्ट करने के लिए चुना है। जब ऐसा होता है, तो प्रोजेक्ट का GitHub पेज आपको एक बहुत विशिष्ट URL का उपयोग करने के लिए कहना चाहिए, उदाहरण के लिए Fabric का Crashlytics Kit रिपॉजिटरी https://maven.fabric.io/public पर स्थित है।

यदि आप इस तरह का URL देखते हैं, तो आपको अपनी प्रोजेक्ट-लेवल बिल्ड.ग्रेड फ़ाइल खोलने की आवश्यकता होगी, और फिर सटीक URL के साथ रिपॉजिटरी (इस उदाहरण में, मावेन) की घोषणा करें:

रिपॉजिटरी {मावेन {url https://maven.fabric.io/public}}

फिर आप संकलन स्टेटमेंट जोड़ सकते हैं और अपनी फ़ाइलों को सामान्य रूप से सिंक कर सकते हैं।

यदि मुझे रिपॉजिटरी और / या संकलन स्टेटमेंट नहीं मिल रहा है तो क्या होगा?

अब तक, हम आशावादी हैं और यह मानकर चलते हैं कि परियोजना का GitHub है हमेशा आपको वह सभी जानकारी बताता है जो आपको जानना आवश्यक है। दुर्भाग्य से यह हमेशा ऐसा नहीं होता है, इसलिए सर्वोत्तम केस परिदृश्य से, सबसे खराब स्थिति में, और यह कल्पना करें कि प्रोजेक्ट का GitHub पृष्ठ आपको उस रिपॉजिटरी और संकलन स्टेटमेंट के बारे में कोई जानकारी प्रदान नहीं करता है जिसका आपको उपयोग करने की आवश्यकता है।

इस परिदृश्य में, आप या तो कर सकते हैं:

  • JitPack का उपयोग करें।
  • संपूर्ण रिपॉजिटरी को क्लोन करें, और अपने कोड को अपने मॉड्यूल के रूप में अपनी परियोजना में आयात करें।

JitPack का उपयोग करना

JitPack Git के लिए एक पैकेज रिपॉजिटरी है जो आपको दूरस्थ निर्भरता के रूप में किसी भी GitHub प्रोजेक्ट को जोड़ने की सुविधा देता है। जब तक लाइब्रेरी में एक बिल्ड फ़ाइल होती है, तब तक JitPack आपके प्रोजेक्ट में इस लाइब्रेरी को जोड़ने के लिए आवश्यक सभी जानकारी उत्पन्न कर सकता है।

पहला कदम, अपनी परियोजना-स्तरीय बिल्ड.ग्रेड फ़ाइल खोलना और एक रिपॉजिटरी के रूप में JitPack जोड़ना है:

allprojects {रिपॉजिटरी {मावेन {url https://jitpack.io}}}

फिर आप उस प्रोजेक्ट के GitHub URL के आधार पर, एक संकलित कथन उत्पन्न करने के लिए JitPack वेबसाइट का उपयोग कर सकते हैं:

  • अपने वेब ब्राउज़र में, लाइब्रेरी के GitHub पेज पर जाएँ। इसका URL कॉपी करें।
  • JitPack वेबसाइट पर जाएं।
  • URL को वेबसाइट के खोज क्षेत्र में पेस्ट करें और फिर ’लुक अप’ बटन के साथ क्लिक करें।
  • वेबपेज फिर इस लाइब्रेरी के सभी संस्करणों की एक तालिका प्रदर्शित करेगा, विभिन्न टैब में विभाजित करेगा: रिलीज़, बिल्ड, शाखाएँ और कमिट। आमतौर पर, रिलीव अधिक स्थिर होते हैं, जबकि प्रतिबद्ध अनुभाग में नवीनतम परिवर्तन होते हैं।

  • एक बार जब आपने तय कर लिया कि आप किस संस्करण का उपयोग करना चाहते हैं, तो इसके साथ ’गेट इट’ बटन पर क्लिक करें।
  • वेबसाइट को आपके द्वारा उपयोग किए जाने वाले सटीक संकलन विवरण को प्रदर्शित करने के लिए अपडेट करना चाहिए।

  • अपनी परियोजना के मॉड्यूल-स्तर build.gradle फ़ाइल में इस संकलन को कॉपी / पेस्ट करें।
  • अपनी ग्रेडल फ़ाइलों को सिंक करें, और आप अपने पुस्तकालय का उपयोग शुरू करने के लिए तैयार हैं!

GitHub प्रोजेक्ट की क्लोनिंग

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

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

GitHub प्रोजेक्ट को क्लोन करने के लिए:

  • एक GitHub खाता बनाएँ।
  • Android स्टूडियो की 'वेलकम' स्क्रीन से 'संस्करण नियंत्रण से चेकआउट' चुनें।
  • अपने GitHub क्रेडेंशियल दर्ज करें।
  • अपना वेब ब्राउज़र खोलें, उस GitHub रिपॉजिटरी पर जाएँ जिसे आप क्लोन करना चाहते हैं, और फिर उसके URL को Android Studio संवाद में कॉपी / पेस्ट करें।
  • उस स्थानीय निर्देशिका को निर्दिष्ट करें जहाँ आप क्लोन किए गए भंडार को संग्रहीत करना चाहते हैं।
  • इस निर्देशिका को एक नाम दें, और फिर directory क्लोन पर क्लिक करें।

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

  • वह प्रोजेक्ट खोलें जहाँ आप अपनी क्लोन की गई लाइब्रेरी का उपयोग करना चाहते हैं, फिर Android स्टूडियो टूलबार से 'फ़ाइल> नया> आयात मॉड्यूल' चुनें।
  • तीन-डॉटेड बटन पर क्लिक करें और अपने क्लोन रिपॉजिटरी में नेविगेट करें। इस रिपॉजिटरी का चयन करें, फिर 'ठीक' पर क्लिक करें।
  • 'समाप्त करें' पर क्लिक करें।
  • Android स्टूडियो टूलबार से 'फ़ाइल> प्रोजेक्ट संरचना' चुनें।
  • बाएं हाथ के मेनू में, उस मॉड्यूल का चयन करें जहां आप इस लाइब्रेरी का उपयोग करना चाहते हैं।
  • 'निर्भरताएँ' टैब चुनें।

  • थोड़ा ‘+ 'आइकन चुनें, उसके बाद depend मॉड्यूल निर्भरता।’
  • अपना लाइब्रेरी मॉड्यूल चुनें, फिर 'ठीक' पर क्लिक करें।
  • 'प्रोजेक्ट संरचना' विंडो से बाहर निकलें।

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

समस्या निवारण

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

यदि आप अपने प्रोजेक्ट में लाइब्रेरी जोड़ने के बाद समस्याओं में भाग लेते हैं, तो निम्न सुधारों को आज़माएँ:

  • जांचें कि आपने गलती से एक ही लाइब्रेरी के कई संस्करण जोड़े हैं। यदि Android स्टूडियो "एकाधिक DEX फ़ाइलों को परिभाषित ..." त्रुटि की रिपोर्ट कर रहा है, तो आपने एक ही लाइब्रेरी को एक से अधिक बार अपनी परियोजना में जोड़ा हो सकता है। आप एंड्रॉइड स्टूडियो टूलबार से Project फ़ाइल> प्रोजेक्ट संरचना ’का चयन करके अपने मॉड्यूल की निर्भरता की समीक्षा कर सकते हैं, फिर उस मॉड्यूल का चयन कर सकते हैं जिसे आप जांचना चाहते हैं, और encies निर्भरता’ टैब पर क्लिक करें। यदि कोई लाइब्रेरी इस विंडो में कई बार दिखाई देती है, तो डुप्लिकेट का चयन करें, और इसे हटाने के लिए छोटे ’- 'आइकन पर क्लिक करें।
  • वेब खोज। हमेशा एक मौका होता है कि अन्य लोगों को भी आपके साथ एक ही समस्या का सामना करना पड़ सकता है, इसलिए यह देखने के लिए कि क्या किसी ने भी इस मुद्दे के बारे में फ़ोरम, या स्टाकेवरफ़्लो जैसे समुदायों में पोस्ट किया है, एक त्वरित Google खोज करें। आप भी भाग्यशाली हो सकते हैं और एक ब्लॉग या एक ट्यूटोरियल पा सकते हैं जिसमें इस सटीक मुद्दे को हल करने के निर्देश शामिल हैं।
  • अपनी परियोजना को साफ और पुनर्निर्माण करें। कभी-कभी, एंड्रॉइड स्टूडियो टूलबार से, बिल्ड> क्लीन प्रोजेक्ट ’का चयन करते हुए, उसके बाद Re बिल्ड> पुनर्निर्माण प्रोजेक्ट’, आपकी समस्या को हल करने के लिए पर्याप्त हो सकता है।
  • और अगर बाकी सब विफल रहता है ... तीसरे पक्ष के सॉफ़्टवेयर को सही ढंग से काम करने के लिए कभी-कभी थोड़ा परीक्षण और त्रुटि की आवश्यकता होती है, इसलिए यदि आपके चुने हुए पुस्तकालय को आयात करने का एक वैकल्पिक तरीका है, तो यह हमेशा कोशिश करने योग्य है। सिर्फ इसलिए कि जब आप एक क्लोन रिपॉजिटरी का आयात करने के बाद आपका प्रोजेक्ट संकलित करने से इनकार कर रहे हैं, तो इसका मतलब यह नहीं है कि यदि आप उसी लाइब्रेरी को दूरस्थ निर्भरता के रूप में उपयोग करने का प्रयास करते हैं तो इसकी प्रतिक्रिया भी यही होगी।

समेट रहा हु

इस लेख में, हमने देखा कि आप अपने एंड्रॉइड प्रोजेक्ट के लिए GitHub पर आपके द्वारा खोजी गई किसी भी लाइब्रेरी को कैसे जोड़ सकते हैं, चाहे वह लाइब्रेरी JCenter या Maven Central के माध्यम से वितरित की गई हो। और, यहां तक ​​कि अगर आपको पता नहीं है कि आपको किस रिपॉजिटरी या संकलन स्टेटमेंट का उपयोग करने की आवश्यकता है, तो आपके पास हमेशा JitPack का उपयोग करने या लाइब्रेरी के कोड को क्लोन करने का विकल्प होता है।

क्या आपने GitHub पर किसी भी महान एंड्रॉइड लाइब्रेरी की खोज की है? नीचे टिप्पणी करके हमें बताएं!

के अनुसार हाल ही में एक लीक से Android हेडलाइंस, सैमसंग बीहड़ स्मार्टफोन्स की अपनी सक्रिय लाइन को सरलता से शीर्षक वाले सैमसंग गैलेक्सी एक्टिव के साथ वापस लाएगा।...

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

ताजा पद