दिलचस्प पोस्ट
एक वीडियो यूआरएल से थंबनेल या आईफोन एसडीके में डेटा प्राप्त करना एक तत्व की आईडी के रूप में मेरे पास संख्यात्मक मान क्यों नहीं हो सकता? मैं सभी कमिट्स के लिए एक गीता रेपो में एक डायरेक्टरी कैसे ले जाऊं? AngularJS में क्वेरी मापदंडों को पढ़ने का सबसे संक्षिप्त तरीका क्या है? मैं अपने डेल्फी प्रोग्राम के एक उदाहरण से दूसरे को एक स्ट्रिंग कैसे भेजूं? संस्करण बनाम XCode में बनाओ यूनिकोड में यूटीएफ -8 स्ट्रिंग कैसे परिवर्तित करें? मैं अजगर में नेस्टेड क्लास कैसे निकाल सकता हूं? प्रत्येक के लिए एक करते समय std :: vector से मिटा रहा है? 2-मार्गी विलय के मुकाबले एक 3-रास्ता विलय क्यों फायदेमंद है? एसक्यूएल एनवीएचएआरएआर और वीएआरएआरएआर सीमाएं एंड्रॉइड – ऑनऑप्ट्सआईटम्स के बाहर मेनू आइटम टेक्स्ट को डायनामिक रूप से कैसे बदल सकता है? चुने गए या ऑनक्रेट ऑप्शन मेन्यू कुछ दशमलव स्थान तक एक अस्थायी बिंदु संख्या को कैसे गोल करना है? SSIS का उपयोग कर डेटाबेस तालिका में मैं एक बड़ी फ्लैट फाइल कैसे लोड कर सकता हूं? क्या एंड्रॉइड में नकारात्मक मार्जिन का इस्तेमाल करना बुरा अभ्यास है?

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

मैं ढाल बिल्ड सिस्टम और इंटेलीजजे के लिए नया हूँ।

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

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

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

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

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

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

एंड्रॉइड लाइब्रेरी चुनें

लिब

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

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

डीईपी

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

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

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

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

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

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

  2. बाएं प्रोजेक्ट मेनू में फ़ाइल खोलें। (ऐप / बिल्ड.ग्रीड): ग्रैडल स्क्रिप्ट्स> बिल्ड.ग्रॅडल (मॉड्यूल: XXX)

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

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

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

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

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

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

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

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

एंड्रॉइड स्टूडियो के लिए एक वैकल्पिक बहुभाषी सेटअप

एक अलग तरीका:

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

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

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

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

कोड को settings.gradle में डाल दिया है:

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

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

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

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

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

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

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

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

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 

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

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

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

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

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

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

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

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

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

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

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

 apply plugin: 'com.android.application' android {...} 

सेवा मेरे

 apply plugin: 'com.android.library' android {...} 

अधिक यहाँ

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

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

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

  • अपने ऐप के build.gradle फ़ाइल पर जोड़ें:

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

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

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

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

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

 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') }

जैसा कि ऊपर सेक्रज़सेन्सेशन टिप्पणी मैं ग्रैडल बिल्ड विअर्स के बारे में खोज करने की कोशिश करता हूं और मुझे यह लिंक मिला: http://code.tutsplus.com/tutorials/using-gradle-build-varients-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 ऐप्लिकेशन है I में दोनों को Google Play पर अपलोड कर सकते हैं। मैं अभी भी "मुख्य" अनुभाग में कोड देता हूं और getpackageName का उपयोग संस्करण के बीच स्विच करने के लिए करता हूं। बस उस लिंक पर जाएं जिसे मैंने विस्तार के लिए दिया था।

उद्देश्य: एक जगह पर एंड्रॉइड लाइब्रेरी – कई परियोजनाओं में हिस्सा लें http://raevilman.blogspot.com/2016/02/android-library-project-using-android.html

प्रलेखन मार्ग

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

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

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

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

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

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

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

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

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

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

टिप्पणियाँ

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

अगर कोई काम नहीं करता है तो दो सरल तरीके हैं, कृपया दूसरे को देखें।

  1. लाइब्रेरी में build.gradle फ़ाइल के अंदर निर्भरता के अंदर लाइब्रेरी की निर्भरता जोड़ें, और बाहरी पुस्तकालयों में उर लाइब्रेरी पेस्ट करें।

या

  1. बस ऐप फ़ोल्डर के अंदर अपने लिब्स फ़ोल्डर में जाओ और अपने सभी। उदाहरण के लिए पुस्तकालय फाइलों को पेस्ट करें। अब यहां चाल यही है कि अब सेटिंग्स के अंदर जा सकते हैं। ग्रैडल फ़ाइल अब इस लाइन को "शामिल करें" जोड़ें: ऐप: लिब्स '' के बाद 'शामिल': ऐप '' यह निश्चित रूप से काम करेगा ……….. 🙂

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

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

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

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

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

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

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

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

आशा है कि यह आपकी मदद करेगा