एंड्रॉइड स्टूडियो में लाइब्रेरी प्रोजेक्ट और लाइब्रेरी प्रोजेक्ट का उपयोग करने वाले एप्लिकेशन प्रोजेक्ट कैसे बनाएं


164

मैं निर्माण प्रणाली और IntelliJ के लिए नया हूँ।

तो मैं एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट (जैसे com.myapp.lib1) और एप्लिकेशन प्रोजेक्ट (जैसे com.myapp.app) कैसे बनाऊं और बिल्ड सिस्टम को एप्लिकेशन प्रोजेक्ट पर com.myapp.lib1 शामिल करें?

मैं प्रोजेक्ट संरचना में गया -> मॉड्यूल -> मेरी ऐप परियोजना और कामगार परियोजना के लिए एक निर्भरता को जोड़ा। इंटेलीज अब ऐप प्रोजेक्ट में उपयोग किए जाने पर कामगार प्रोजेक्ट से कक्षाओं को पहचान सकता है, लेकिन जब मैं ऐप प्रोजेक्ट चलाता हूं, तो इस तरह की त्रुटियां होती हैं:

Gradle: error: package com.myapp.lib1 does not exist

1
मैं अपने ऐप के फ्री / पेड वर्जन बनाने के लिए एंड्रॉइड लाइब्रेरीज़ का इस्तेमाल कर रहा था। नया ग्रैडल बिल्ड सिस्टम बिल्ड वेरिएंट अवधारणा के साथ इस दृष्टिकोण को अप्रचलित बनाता है। अब आप स्वचालित रूप से एक ही कोड से विभिन्न हस्ताक्षरित APK बना सकते हैं। काश मुझे यह जल्दी पता होता।
theceshopsensation

1
@ thecgatesensation - क्या आप विस्तृत कर सकते हैं? पूर्ण संस्करण के लिए एपीके अपलोड करने के बाद, मैंने मुफ्त संस्करण के लिए एपीके अपलोड करने का प्रयास किया, लेकिन समान पैकेज नाम का उपयोग करके। Google Play Store (GPS) ने मुझे संदेश दिया कि मैं पहले ही उस पैकेज का नाम इस्तेमाल कर चुका हूं। क्या आप ग्रेडल के बारे में कहते हैं कि मुझे दो अलग-अलग पैकेजों में दो अलग-अलग ऐप्स की आवश्यकता नहीं है?
DSlomer64

यहाँ सही उत्तर है stackoverflow.com/a/31366602/1118772 । आकिब मुमताज ने जवाबों में उल्लेख किया है, लेकिन यह अंतिम स्थान पर है। अन्य तरीकों से समय बर्बाद करने के बजाय, आप इसके साथ जा सकते हैं। philosophicalhacker.com/2014/10/02/...
Noundla संदीप

पुस्तकालयों के साथ दिलचस्प धागा । सचित्र स्पष्टीकरण के साथ।
हरीश

जवाबों:


111

एक पुस्तकालय बनाने के लिए:

फ़ाइल> नया मॉड्यूल

Android लाइब्रेरी का चयन करें

लिब

पुस्तकालय का उपयोग करने के लिए इसे एक निर्भरता के रूप में जोड़ें:

फ़ाइल> प्रोजेक्ट संरचना> मॉड्यूल> निर्भरता

डीईपी

फिर मॉड्यूल (एंड्रॉइड लाइब्रेरी) को मॉड्यूल निर्भरता के रूप में जोड़ें।

मॉड्यूल जोड़ें

अपना प्रोजेक्ट चलाएं। यह काम करेगा


194
यह प्रोजेक्ट के भीतर मॉड्यूल की फाइल बनाता है। क्या होगा यदि आप चाहते हैं कि मॉड्यूल परियोजना के लिए बाहरी हो ताकि इसका उपयोग किसी अन्य एप्लिकेशन के साथ किया जा सके?
rrbrambley

2
@rrbrambley: मुझे कई परियोजनाओं में एक मॉड्यूल को फिर से उपयोग करने का एक तरीका मिल गया है। मैंने विंडोज़ के लिए winbolic लिंक नामक एप्लिकेशन का उपयोग करके (NTFS जंक्शन) फ़ोल्डर लिंक बनाया। जब मेरे पास एक मॉड्यूल होता है जिसे मैं कई परियोजनाओं में फिर से उपयोग करना चाहता हूं, तो मैं प्रत्येक प्रोजेक्ट की निर्देशिका के अंदर टू-री-यूज्ड प्रोजेक्ट के लिए एक फ़ोल्डर लिंक बनाता हूं जिसमें इसका उपयोग करना है। इसके बाद मैं मॉड्यूल निर्भरता (एंड्रॉइड स्टूडियो में) जोड़ता हूं। अब मैं प्रत्येक प्रोजेक्ट में मॉड्यूल का उपयोग / संपादन कर सकता हूं, जबकि सिंक में है। यकीन नहीं है कि यह जाने का सही तरीका है, लेकिन अभी के लिए यह काफी अच्छा काम करता है! यह एक स्थानीय मावेन रेपो से बेहतर काम करता है।
पीटर

1
दुर्भाग्य से, जुलाई 2014 तक, स्क्रीनई में दिखाए गए प्रोजेक्ट की तरह अब प्रोजेक्ट सेटिंग्स नहीं है। मैं नीचे। के रूप में GrkEngineer के जवाब में .grad फ़ाइलों को संपादित करने के लिए जाना था।
टिम ब्रे

24
इसे नीचे वोट दिया जाना चाहिए क्योंकि यह एक मौजूदा परियोजना के भीतर से एक मॉड्यूल बनाता है
जोनाथन

2
यदि आप अन्य प्रोजेक्ट्स में समान उपयोग करना चाहते हैं, तो आपको लाइब्रेरी मॉड्यूल को उस प्रोजेक्ट में कॉपी करना होगा और सेटिंग्स.ग्रेडल और मेन मॉड्यूल के बिल्ड.ग्रेड को मैन्युअल रूप से कॉन्फ़िगर करना होगा।
हनू

114

मुझे आश्चर्य है कि स्टैंड जार परियोजना का कोई उदाहरण क्यों नहीं है।

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

  1. एक प्रोजेक्ट बनाएं।

  2. बाएं प्रोजेक्ट मेनू में खुली फ़ाइल। (एप्लिकेशन / build.gradle): ग्रेड स्क्रिप्स> build.gradle (मोडल डेज़)

  3. एक पंक्ति बदलें: apply plugin: 'com.android.application'->'apply plugin: com.android.library'

  4. फ़ाइल में ApplicationId निकालें: applicationId "com.mycompany.testproject"

  5. बिल्ड प्रोजेक्ट: बिल्ड> प्रोजेक्ट का पुनर्निर्माण

  6. तब आप aar फ़ाइल प्राप्त कर सकते हैं: ऐप> बिल्ड> आउटपुट> aar फोल्डर

  7. परिवर्तन aarफ़ाइल एक्सटेंशन नाम मेंzip

  8. खोलना, और आप classes.jarफ़ोल्डर में देख सकते हैं । नाम बदलें और इसका उपयोग करें!

वैसे भी, मुझे नहीं पता कि क्यों Google एंड्रॉइड स्टूडियो में जार निर्माण को इतना परेशान करता है।


1
मेरे लिए Android Studio 2.2.2 dec पर काम करता है। 2016.
हरमन

95

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

Android स्टूडियो के लिए एक वैकल्पिक मल्टीप्रोजेक्ट सेटअप

एक अलग तरीका:

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

  1. StickyListHeaders लाइब्रेरी के लिए एक एंड्रॉइड स्टूडियो प्रोजेक्ट बनाएं
  2. App2 के लिए एक Android स्टूडियो प्रोजेक्ट बनाएं
  3. App1 के लिए एक Android स्टूडियो प्रोजेक्ट बनाएं
  4. StickyListHeaders प्रोजेक्ट में मॉड्यूल बनाने के लिए App1 और App2 कॉन्फ़िगर करें।

4 वां चरण कठिन हिस्सा है, इसलिए यह एकमात्र ऐसा कदम है जिसका मैं विस्तार से वर्णन करूंगा। आप मॉड्यूल को संदर्भित कर सकते हैं जो आपकी सेटिंग में एक प्रोजेक्ट स्टेटमेंट जोड़कर आपकी परियोजना की निर्देशिका के लिए बाहरी हैं। ProjectDescriptor ऑब्जेक्ट पर प्रोजेक्टडायर संपत्ति सेट करके और उस प्रोजेक्ट स्टेटमेंट द्वारा लौटाए गए हैं:

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

कोड एक में डालना है settings.gradle:

include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')

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

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

इससे आप लाइब्रेरी कोड और ऐप कोड पर एक साथ काम कर सकते हैं। संस्करण नियंत्रण एकीकरण भी ठीक काम करता है जब आप बाह्य उपकरणों को इस तरह से संदर्भित करते हैं। आप अपने संशोधनों को लाइब्रेरी कोड के लिए प्रतिबद्ध और धक्का दे सकते हैं जैसे आप कर सकते हैं और संशोधनों को अपने ऐप कोड में धक्का दे सकते हैं।

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

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


4
यह एकदम सही जवाब है। धन्यवाद।
नंदला संदीप

1
अच्छा उत्तर, लेकिन लिंक के टूटने की स्थिति में आपको अपने उत्तर से संबंधित उत्तर की प्रतिलिपि बनानी चाहिए।
ग्रियर्सन पेरेल्ली

2
नोट: Gradle में स्ट्रिंग मूल्यांकन के लिए आप दोहरे उद्धरण ( ") का उपयोग करना चाहिए मेरे लिए दिन" सेव जुड़ने वाली यह। "। इस
Solata

1
हम लाइब्रेरी कोड को ऐप कोड से कैसे संदर्भित करते हैं? आपके सेट अप निर्देशों का पालन करने के बाद, ऐप कोड अभी भी लाइब्रेरी कोड में एक पैकेज को संदर्भित नहीं कर सकता है। क्या कोई अतिरिक्त कदम है जो करने की आवश्यकता है?
CEGRD

2
@CEGRD आपको फ़ाइल> प्रोजेक्ट स्ट्रक्चर पर जाना होगा और उस मॉड्यूल के नाम पर क्लिक करना होगा जिस पर आप काम कर रहे हैं। फिर निर्भरता टैब पर जाएं> ड्रॉप डाउन मेनू में '+' फिर 'मॉड्यूल निर्भरता' पर क्लिक करें। फिर आपको अपने वर्तमान प्रोजेक्ट में लाइब्रेरी 1 मॉड्यूल को जोड़ने में सक्षम होना चाहिए।
ओलियासैलो

45

मल्टी प्रोजेक्ट सेटअप के बारे में इस लिंक को देखें ।

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

settings.gradle: include ':app', ':libraries:lib1', ':libraries:lib2'

यह भी सुनिश्चित करें कि ऐप के build.gradle में followng है:

dependencies {
     compile project(':libraries:lib1')
}

आपके पास निम्न संरचना होनी चाहिए:

 MyProject/
  | settings.gradle
  + app/
    | build.gradle
  + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

ऐप के बिल्ड.ग्रेडल को com.android.applicationप्लगइन का उपयोग करना चाहिए जबकि किसी भी लाइब्रेरी के बिल्ड.ग्रेड को com.android.libraryप्लगइन का उपयोग करना चाहिए ।

यदि आप इस पंक्ति के साथ कमांड लाइन से निर्माण करने में सक्षम हैं, तो एंड्रॉइड स्टूडियो आईडीई को अपडेट करना चाहिए।


क्या प्लगइन build.gradle में एकमात्र अंतर है? यानी क्या आप उस लाइन को बदलकर किसी मौजूदा मॉड्यूल को एंड्रॉइड लाइब्रेरी में बदल सकते हैं?
एनरिको

22
एक दिन, हम एक आयात बटन पर क्लिक करेंगे और पुस्तकालय सिर्फ काम करेगा, फिर हम संपादक में कोड लिखना शुरू करेंगे।
स्टीव एम।

6
यह दृष्टिकोण वास्तविक परियोजना के भीतर पुस्तकालयों को शामिल करने के लिए लगता है। ओपी क्या जानना चाहता था कि एक अलग एंड्रॉइड लाइब्रेरी प्रोजेक्ट कैसे बनाया जाए जो अपने स्वयं के प्रोजेक्ट / स्पेस में रहता है और केवल मुख्य ऐप प्रोजेक्ट पर एक लिब के रूप में शामिल है
जोनाथन

@SteveM मेरे करियर के दौरान मेरी समस्या रही है। मैं बस बिना किसी डिजाइन के कोडिंग शुरू करता हूं। और फिर घंटों डिबगिंग और रीफैक्टरिंग खर्च करते हैं।
राजकिरण

13

Intellij IDEA (और Android Studio) के लिए प्रत्येक पुस्तकालय एक मॉड्यूल है। ग्रहण में परियोजना के बराबर के रूप में Android स्टूडियो में एक मॉड्यूल के बारे में सोचो। एंड्रॉइड स्टूडियो में प्रोजेक्ट मॉड्यूल का एक संग्रह है। मॉड्यूल रन करने योग्य एप्लिकेशन या लाइब्रेरी मॉड्यूल हो सकते हैं।

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


12

मेरे लिए लाइब्रेरी प्रोजेक्ट बनाने और पुन: उपयोग करने का सबसे सरल तरीका :

  1. एक खुली परियोजना पर file > new > new module(और UI प्रश्नों का उत्तर दें)

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

  1. फ़ाइल सेटिंग में चेक / या जोड़ें :include ':myLibrary'
  2. फ़ाइल build.gradle में चेक / या जोड़ें :

    dependencies { ... compile project(':myLibrary') }

  3. किसी अन्य प्रोजेक्ट में इस लाइब्रेरी मॉड्यूल का पुन: उपयोग करने के लिए, इसे चरण 1 के बजाय प्रोजेक्ट में फ़ोल्डर की प्रतिलिपि बनाएँ और चरण 2 और 3 करें।

आप एक नया स्टूडियो एप्लिकेशन प्रोजेक्ट भी बना सकते हैं। आप build.gradle फ़ाइल में com.android.library पर प्लगइन असाइनमेंट बदलकर लाइब्रेरी मॉड्यूल में एक मौजूदा एप्लिकेशन मॉड्यूल आसानी से बदल सकते हैं।

apply plugin: 'com.android.application'

android {...}

सेवा

apply plugin: 'com.android.library'

android {...}

अधिक यहाँ


यदि आप प्लगिन असाइनमेंट को बदलकर किसी मौजूदा एप्लिकेशन मॉड्यूल को लाइब्रेरी मॉड्यूल में बदलते हैं, तो आपको com ApplicationId "com ...." को भी ग्रेड फ़ाइल से हटाना होगा।
TDG

"चेतावनी: कॉन्फ़िगरेशन 'संकलन' अप्रचलित है और इसे 'कार्यान्वयन' और 'एपीआई' के साथ बदल दिया गया है।"
स्लैक

9

आप किसी भी एप्लिकेशन में एक नया मॉड्यूल जोड़ सकते हैं जैसा कि ब्लंडेल अपने जवाब में कहता है और फिर किसी अन्य एप्लिकेशन से इसे संदर्भित करता है।

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

इस मॉड्यूल को संदर्भित करने के लिए आपको चाहिए:

  • अपने एप्लिकेशन की बिल्ड.gradle फ़ाइल जोड़ें:

    dependencies {
    ...
    compile project(':myandroidlib')
    }
    
  • सेटिंग्स पर। फ़ाइल को निम्न जोड़ें:

     include ':app', ':myandroidlib'
     project(':myandroidlib').projectDir = new File(PATH_TO_YOUR_MODULE)
    

उदाहरण के लिए , एंड्रॉइड प्रोजेक्ट के फ़ोल्डर के समानांतर फ़ोल्डर का नाम project(':library').projectDir = new File('../library')कहां libraryहै।
कोई व्यक्ति

5

प्लगइन लागू करने के बजाय apply plugin: 'com.android.library'अपने उपयोग में भूल न करें build.gradle:'com.android.application'


4

प्रलेखन तरीका

एंड्रॉइड स्टूडियो प्रलेखन में दी गई सलाह के अनुसार यह अनुशंसित तरीका है।

लाइब्रेरी मॉड्यूल बनाएं

अपनी लाइब्रेरी बनाने के लिए एक नया प्रोजेक्ट बनाएं। फ़ाइल> नया> नया मॉड्यूल> Android लाइब्रेरी> अगला> (नाम चुनें)> समाप्त करें पर क्लिक करें । फिर जो भी क्लासेस और रिसोर्सड आप अपनी लाइब्रेरी में जोड़ना चाहते हैं।

जब आप मॉड्यूल का निर्माण करते हैं तो AAR फ़ाइल बनाई जाएगी। तुम इसमें पा सकते हो project-name/module-name/build/outputs/aar/

अपनी लाइब्रेरी को एक निर्भरता के रूप में जोड़ें

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

  1. अपनी लाइब्रेरी AAR फ़ाइल को फ़ाइल के साथ आयात करें > नया मॉड्यूल> आयात .JAR / .AAR पैकेज> अगला> (फ़ाइल स्थान चुनें)> समाप्त करें । (कोड आयात न करें, अन्यथा यह बहुत अधिक स्थानों पर संपादन योग्य होगा।)
  2. Settings.gradle फ़ाइल में, सुनिश्चित करें कि आपका लाइब्रेरी नाम है।

    include ':app', ':my-library-module'
    
  3. एप्लिकेशन की बिल्ड.ग्रेड फ़ाइल में, निर्भरता अनुभाग में संकलन लाइन जोड़ें:

    dependencies {
        compile project(":my-library-module")
    }
    
  4. आपको अपनी परियोजना सिंक करने के लिए संकेत दिया जाएगा। कर दो।

बस। अब आपको अपने पुस्तकालय का उपयोग करने में सक्षम होना चाहिए।

टिप्पणियाँ

यदि आप अपने पुस्तकालय को बड़े दर्शकों के लिए आसानी से उपलब्ध कराना चाहते हैं, तो JitPac या JCenter का उपयोग करने पर विचार करें


3

एक ही सवाल था और इसे निम्न तरीके से हल किया:

प्रारंभ स्थिति :

FrigoShare (root)
|-Modules:    frigoshare,   frigoShare-backend

लक्ष्य : नाम के एक मॉड्यूल को जोड़ना चाहते हैंdataformats

  1. एक नए मॉड्यूल जोड़ें (जैसे: Java Library)
  2. सुनिश्चित करें कि आपका settings.gradleरूप इस तरह का हो (सामान्य रूप से स्वचालित रूप से):

    include ':frigoshare', ':frigoShare-backend', ':dataformats'

  3. सुनिश्चित करें ( मैन्युअल ) कि build.gradleआपके पुस्तकालय का उपयोग करने के लिए आवश्यक मॉड्यूल की फ़ाइलों में निम्नलिखित निर्भरता है:

    dependencies { ... compile project(':dataformats') }



2

जैसा कि ऊपर दी गई टिप्पणी से मैं ग्रैड बिल्ड वेरिएंस के बारे में खोज करने की कोशिश करता हूं और मुझे यह लिंक मिला है: http://code.tutsplus.com/tutorials/use-gradle-build-variants--cms-25005 यह एक बहुत ही सरल समाधान है। मैंने यही किया है: - build.gradle में:

flavorDimensions "version"

productFlavors {
    trial{
        applicationId "org.de_studio.recentappswitcher.trial"
        flavorDimension "version"
    }
    pro{
        applicationId "org.de_studio.recentappswitcher.pro"
        flavorDimension "version"
    }

}

फिर मेरे पास मेरे ऐप के 2 और संस्करण हैं: प्रो और ट्रायल 2 डिफरेंट पैकेजनाम के साथ जो कि 2 एप्लीकेशनआईड है जो उपरोक्त कोड में है इसलिए मैं दोनों को Google Play पर अपलोड कर सकता हूं। मैं अभी भी "मुख्य" अनुभाग में कोड करता हूं और संस्करण के बीच स्विच करने के लिए गेटपैकेजनाम का उपयोग करता हूं। बस विस्तार से दिए गए लिंक पर जाएं।


1

दो सरल तरीके हैं अगर एक काम नहीं करता है तो कृपया दूसरे को आज़माएं।

  1. पुस्‍तकालय के अंदर पुस्‍तकालय के अंदर पुस्‍तकालय की निर्भरता जोड़ें। पुस्‍तकालय की उर फ़ाइल का उपयोग करके, और पुस्‍तकालय में पुस्‍तकालय पुस्‍तकालय में उर पुस्‍तकालय को चिपकाना।

या

  1. बस ऐप फ़ोल्डर के अंदर अपने libs फ़ोल्डर में जाएं और अपने सभी .jar जैसे लाइब्रेरी फ़ाइलों को पेस्ट करें। अब यहां ट्रिक यह है कि अब settings.gradle फ़ाइल के अंदर जाएं इस पंक्ति को "इसमें शामिल करें:": ऐप: libs "के बाद" शामिल करें ": एप्लिकेशन '"यह निश्चित रूप से काम करेगा ........... :)

1

मेरे मामले में, मैक ओएस एक्स 10.11 और एंड्रॉइड 2.0 का उपयोग करके, और वास्तव में वही करके जो अकीब मुमताज ने समझाया है।

लेकिन, हर बार, मेरे पास यह संदेश था: " प्रोजेक्ट को कॉन्फ़िगर करने में एक समस्या हुई: 'ऐप'।> मॉड्यूल का मूल्यांकन नहीं कर सकता xxx: नाम के साथ कॉन्फ़िगरेशन 'डिफ़ॉल्ट' नहीं मिला ।"

मैंने पाया कि इस संदेश का कारण यह है कि Android 2.0 सीधे लाइब्रेरी बनाने की अनुमति नहीं देता है। इसलिए, मैंने पहले एक ऐप प्रोजेट बनाने और फिर इसे लाइब्रेरी के रूप में बदलने के लिए बिल्ड.ग्रेडल को संशोधित करने का निर्णय लिया है।

यह समाधान काम नहीं करता है, क्योंकि एक लाइब्रेरी प्रोजेक्ट एक ऐप प्रोजेक्ट की तुलना में बहुत अलग है।

इसलिए, मैंने अपनी समस्या का समाधान इस तरह किया है:

  • पहले एक मानक एप्लिकेशन बनाएं (यदि आवश्यक हो);
  • इसके बाद 'फाइल / क्रिएट मॉड्यूल' चुनें
  • खोजक पर जाएं और अपने फ्रेमवर्क निर्देशिका में बनाए गए मॉड्यूल के फ़ोल्डर को नए सिरे से स्थानांतरित करें

फिर अकीब मुमताज द्वारा प्रस्तावित समाधान के साथ जारी रखें।

परिणामस्वरूप, आपके लाइब्रेरी स्रोत को हर बार डुप्लिकेट स्रोत फ़ाइलों की आवश्यकता के बिना साझा किया जाएगा (यह मेरे लिए एक विधर्म था!)।

उम्मीद है कि यह आपकी मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.