मैं एंड्रॉइड स्टूडियो में एक पुस्तकालय परियोजना कैसे जोड़ूं?


796

मैं एंड्रॉइड स्टूडियो में एक पुस्तकालय परियोजना (जैसे शर्लक एबीएस) कैसे जोड़ूं ?

(पुराने ADT ग्रहण-आधारित बंडल के लिए नहीं, बल्कि नए Android स्टूडियो में ।)


28
हाँ यह समझ से बाहर तरीका था और अधिक भ्रमित की तुलना में यह होना चाहिए था ... जैसे कि यह ग्रहण में कोई बेहतर नहीं था।
डेनियल स्मिथ

4
YouTube वीडियो एंड्रॉइड स्टूडियो में लाइब्रेरी कैसे जोड़ें इस प्रक्रिया को समझाता है।

2
यदि आप उपयोग कर रहे हैं Gradle, तो यह StackOverflow उत्तर देखें ।
craned

2
यहाँ एक वीडियो है जो मुझे वास्तव में उपयोगी लगता है: youtube.com/watch?v=1MyBO9z7ojk
साइमन

जवाबों:


718

एंड्रॉइड स्टूडियो 1.0 के लिए अपडेट करें

चूंकि एंड्रॉइड स्टूडियो 1.0 जारी किया गया था (और मेरे पिछले उत्तर के समय से v1.0 और सबसे पहले के बीच बहुत सारे संस्करण) कुछ चीजें बदल गई हैं।

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

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

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

पुस्तकालय जोड़ना

यहां हमारी परियोजना में बाहरी Android लाइब्रेरी जोड़ने की पूरी प्रक्रिया है:

  1. एंड्रॉइड स्टूडियो निर्माता के माध्यम से एक नया प्रोजेक्ट बनाएं। मैंने इसका नाम हैलोवर्ल्ड रखा ।
  2. यहाँ Android स्टूडियो द्वारा बनाई गई मूल परियोजना संरचना है:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. रूट डायरेक्टरी ( HelloWorld/) में, नया फ़ोल्डर बनाएँ: /libsजिसमें हम अपने बाहरी पुस्तकालयों को जगह देंगे (यह कदम आवश्यक नहीं है - केवल एक क्लीनर प्रोजेक्ट संरचना रखने के लिए)।
  2. अपनी लाइब्रेरी को नए बनाए गए /libsफ़ोल्डर में पेस्ट करें । इस उदाहरण में मैंने PagerSlidingTabStrip लाइब्रेरी का उपयोग किया (बस GitHub से ज़िप डाउनलोड करें, लाइब्रेरी निर्देशिका का नाम बदलकर to PagerSlidingTabStrip "करें और इसे कॉपी करें)। यहां हमारी परियोजना की नई संरचना है:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. अपनी लाइब्रेरी को जोड़कर settings.gradle संपादित करें include। यदि आप मेरे जैसे कस्टम पथ का उपयोग करते हैं, तो आपको हमारी लाइब्रेरी के लिए प्रोजेक्ट डायरेक्टरी को भी परिभाषित करना होगा। एक पूरी सेटिंग .ग्रेड नीचे की तरह दिखना चाहिए:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')

5.1 यदि आपको "डिफ़ॉल्ट कॉन्फ़िगरेशन" त्रुटि का सामना करना पड़ता है, तो चरण 5 के बजाय यह प्रयास करें,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. में app/build.gradleएक निर्भरता के रूप में हमारे पुस्तकालय परियोजना जोड़ें:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }

6.1। यदि आपने चरण 5.1 का अनुसरण किया है, तो 6 के बजाय इसका अनुसरण करें,

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. यदि आपकी लाइब्रेरी प्रोजेक्ट में build.gradleफ़ाइल नहीं है, तो आपको इसे मैन्युअल रूप से बनाना होगा। यहाँ उस फ़ाइल का उदाहरण दिया गया है:

        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
  2. इसके अतिरिक्त आप अपनी परियोजना के लिए एक वैश्विक कॉन्फ़िगरेशन बना सकते हैं जिसमें एसडीके संस्करण होंगे और स्थिरता बनाए रखने के लिए प्रत्येक मॉड्यूल के लिए टूल संस्करण का निर्माण करेंगे। बस gradle.propertiesफ़ाइल संपादित करें और लाइनें जोड़ें:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21

    अब आप इसे अपनी build.gradleएप्लिकेशन में (एप्लिकेशन और लाइब्रेरी मॉड्यूल में) नीचे की तरह उपयोग कर सकते हैं :

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
  3. बस इतना ही। बस क्लिक करें Grad ग्रेडल आइकन के साथ परियोजना को सिंक्रनाइज़ करें ग्रेडेल के साथ सिंक्रनाइज़ करें। आपका पुस्तकालय आपके प्रोजेक्ट में उपलब्ध होना चाहिए।

Google I / O 2013 - नया एंड्रॉइड एसडीके बिल्ड सिस्टम ग्रैडल बिल्ड सिस्टम के साथ एंड्रॉइड ऐप के निर्माण के बारे में एक शानदार प्रस्तुति है: जैसा कि जेवियर डुक्रोट ने कहा:

एंड्रॉइड स्टूडियो सभी संपादन, और डिबगिंग और प्रोफाइलिंग के बारे में है। यह किसी भी अधिक के निर्माण के बारे में नहीं है।

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


6
वहाँ हे, तुम पूरी तरह से असली मुद्दा समझाया। अपना जवाब देना ताकि दूसरे लोग इसे देख सकें। एक छोटी सी बात जो मेरी तरफ से काम नहीं करती थी, वह निर्भरता के निर्माण में समर्थन पुस्तकालय का उल्लेख कर रही है। जैसा कि यह पता चला है: 'परियोजना / काम ...' किसी कारण से काम नहीं किया। मुझे परियोजना की पहचान के साथ दूर करना पड़ा। इसलिए 'लिबास / ...'। और यह ठीक संकलित है। एक नोट यह है कि पथ या परियोजनाओं को संदर्भित करने के ये दो तरीके भ्रामक हैं। मुझे आशा है कि भविष्य में एक सरल और एकीकृत योजना सामने आएगी। कोई कारण नहीं है कि मूल समाधान काम नहीं करेगा।
विजेता n।

9
+1। लंबे समय से इससे जूझ रहा था। जैसा कि विजयर एन ने कहा, एक्शनबर्सहेरल मॉड्यूल से मुख्य परियोजना के समर्थन जार को संदर्भित करने से काम नहीं होता है। मुझे इसे काम करने के लिए निम्न कार्य करना था ... (1) प्रोजेक्ट के build.gradle से संकलन फ़ाइलें ('libs / android-support-v4.jar') निकालें। मुख्य मॉड्यूल में केवल संकलित परियोजना (": पुस्तकालय: एक्शनबर्शर") होनी चाहिए । (2) क्रिया फ़ाइलों के बजाय संकलन फ़ाइल ('libs / android-support-v4.jar') को संकलित करने के लिए Actionbarsherlock के build.gradle में संकलन फ़ाइलें (': HelloWorld / libs / android-support-v4.jar') जोड़ें।
अकबर इब्राहिम

3
कहां है Global libraries(# 10: "अब ग्लोबल लाइब्रेरी जाएं")? इसके अलावा, यह वर्णित के रूप में काम करता है :) बहुत बहुत धन्यवाद। (मुझे उम्मीद है कि Google इसके लिए नीचे आ जाएगा - इस तरह के एक सरल कार्य इस समय प्रमुख रूप से जटिल है)
कोनराड मोरावस्की

8
मेरे पास "आयात मॉड्यूल" अनुभाग क्यों नहीं है, उस विकल्प पर जहां आप हमें निर्देशित करते हैं? मैं एंड्रॉइड स्टूडियो 0.3.1 का उपयोग कर रहा हूं
alicanbatur

5
आयात मॉड्यूल विकल्प गायब है !!
amalBit

274

यहाँ दृश्य गाइड है:

एंड्रॉइड स्टूडियो के लिए अपडेट 0.8.2:

एंड्रॉइड स्टूडियो 0.8.2 में, प्रोजेक्ट संरचना पर जाएं -> मॉड्यूल के तहत बस प्लस बटन दबाएं और आयात मौजूदा परियोजना का चयन करें और आयात करें actionbarsherlock। फिर अपनी ग्रेडल फ़ाइलों को सिंक्रनाइज़ करें।

यदि आप त्रुटि का सामना करते हैं

त्रुटि: एसडीके बिल्ड टूल रिविजन (xx.xx) बहुत कम है। न्यूनतम आवश्यक yy.yy है

बस निर्देशिका build.gradleमें फ़ाइल खोलें actionbarsherlockऔर buildToolsVersionसुझाए गए एक को अपडेट करें ।

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

एंड्रॉइड स्टूडियो 0.8.2


मेनू फ़ाइल -> परियोजना संरचना ... :

प्रथम

मॉड्यूल -> आयात मॉड्यूल

दूसरा

लाइब्रेरी मॉड्यूल आयात करने के बाद, अपने प्रोजेक्ट मॉड्यूल का चयन करें और निर्भरता जोड़ें:

तीसरा

और फिर आयातित मॉड्यूल का चयन करें :

आगे


31
आयात मॉड्यूल विकल्प Android Studio4.3 में उपलब्ध नहीं है
amalBit

3
मेरे लिए यह काम करने और पैकेज नहीं मिलने की त्रुटियों को हल करने की कुंजी कदम थाSelect your project module and add dependency dependencies { // ... compile project(':library') }
toobsco42

7
यह आपके प्रोजेक्ट में लाइब्रेरी मॉड्यूल की नकल करेगा, जो कि आप नहीं चाहते हैं कि क्या आप कई प्रोजेक्ट्स के बीच साझा कॉमन कोड आधार चाहते हैं
Rémy DAVID

@amalBit हैं ... क्या आप भविष्य से हैं? लेकिन गंभीरता से, उन्हें यह सरल बनाने की आवश्यकता है जैसे कि यह ग्रहण एडीटी में था; जो प्रत्येक बिल्ड में एक तृतीय-पक्ष रेपो और संकलन (संभावित) मनमाना कोड हिट करना चाहता है? यह गंभीरता से क्यूए और कोड-फ्रीज प्रोटोकॉल को कम करता है
CCJ

यह एंड्रॉइड स्टूडियो 0.4.3 के बीटा दिनों के दौरान वापस आ गया था। परिग्रहण 3rd पार्टी रेपो के लिए, आईडी का कहना है, का उपयोग करने से बचें +। बस इच्छित संस्करण को निर्दिष्ट करें यदि आप अभी भी इस पर पर्याप्त विश्वास नहीं कर सकते हैं, तो आप किसी भी रेपो का जार (या क्लोन) बना सकते हैं और इसका उपयोग कर सकते हैं।
अमलबिट

111

मेनू फ़ाइल का उपयोग करें -> प्रोजेक्ट संरचना -> मॉड्यूल

मैंने आज इसका इस्तेमाल करना शुरू कर दिया। यह थोड़ा अलग है।

शर्लक के लिए, शायद आप उनकी परीक्षण निर्देशिका को हटाना चाहते हैं, या junit.jarफ़ाइल को क्लासपाथ में जोड़ना चाहते हैं ।

ग्रेडेल का उपयोग करके पुस्तकालय को आयात करने के लिए, आपको इसे dependenciesअपने build.gradle(मॉड्यूल के एक) अनुभाग में जोड़ना होगा ।

उदाहरण के लिए

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Android Studio बदल रहा है।

यदि आप एंड्रॉइड स्टूडियो के प्रोजेक्ट सेक्शन में एक मॉड्यूल फ़ोल्डर पर राइट-क्लिक करते हैं, तो "ओपन मॉड्यूल सेटिंग्स" नाम का एक सेक्शन मौजूद है (मैं संस्करण 0.2.10 का उपयोग कर रहा हूं)।


1
हम्म यह अभी भी कहते हैं कि एंड्रॉइड-एप-कंपाइलर: style.xml: 5: error: माता-पिता को आइटम के लिए पुनर्प्राप्त करने में त्रुटि: कोई भी संसाधन नहीं मिला जो दिए गए नाम 'Theme.Sherlock.Light.DarkActionBar' से मेल खाता हो।
अलेक्जेंडर कुलाख़्तिन

शर्लक मॉड्यूल के तहत -> आश्रितों के पास एंड्रॉइड 4.2.2 और समर्थन लाइब्रेरी v4
ब्लैकबेल्ट

@ ρя buttonρєяK रन बटन के बगल में, एंड्रॉइड के साथ एक लेबल है। यदि आप वहां क्लिक करते हैं तो आपको एडिट कॉन्फ़िगरेशन मिलेगा। पुश एंड टार्गेट डिवाइस के तहत "शो चॉसर डायलॉग" पर क्लिक करें
ब्लैकबेल्ट

7
नमस्ते, मुझे एलेक्स जैसी ही समस्या है ("ग्रैडल: आइटम के लिए माता-पिता को पुनर्प्राप्त करने में त्रुटि: कोई संसाधन नहीं मिला जो दिए गए नाम 'Theme.Sherlock.Light' से मेल खाता है।") - जावा निर्भरता को सही ढंग से हल किया जा रहा है, कारण लगता है। आईडीई मेरी शर्लकएक्टिविटी को दोष नहीं देता है, लेकिन किसी कारणवश ग्रैडल एबीएस के स्रोतों पर गौर नहीं करता है। कोई विचार?
मछली

4
एंड्रॉइड स्टूडियो 0.2.8 Modulesमें Project Structureविंडो में कोई खंड नहीं है ।
कोनराड मोरावस्की

52

मैं निर्भरता, एंड्रॉइड लाइब्रेरी और मल्टी-प्रोजेक्ट सेटअप को पढ़ने पर विचार करूंगा । कृपया ऐसा करने में कुछ मिनट लगायें।

विशेष रूप से, गैर-जार लाइब्रेरी प्रोजेक्ट के मामले में, उपरोक्त स्रोत से निम्नलिखित स्निपेट पढ़ें:

ग्रैडल परियोजनाएं मल्टी-प्रोजेक्ट सेटअप का उपयोग करके अन्य श्रेणी परियोजनाओं पर भी निर्भर कर सकती हैं। एक बहु-परियोजना सेटअप आमतौर पर किसी दिए गए रूट परियोजना के उप फ़ोल्डर्स के रूप में सभी परियोजनाओं को काम करता है।

उदाहरण के लिए, निम्नलिखित संरचना को दिया गया:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

हम 3 परियोजनाओं की पहचान कर सकते हैं। ग्रेडेल उन्हें निम्नलिखित नाम के साथ संदर्भित करेगा:

:app
:libraries:lib1
:libraries:lib2

प्रत्येक प्रोजेक्ट का अपना बिल्ड.ग्रेड होगा जो यह बताता है कि यह कैसे बनता है। इसके अतिरिक्त, वहाँ एक फाइल होगी, जिसे सेटिंग्स कहा जाता है। यह निम्नलिखित संरचना देता है:

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

Settings.gradle की सामग्री बहुत सरल है:

include ':app', ':libraries:lib1', ':libraries:lib2'

यह परिभाषित करता है कि कौन सा फ़ोल्डर वास्तव में ग्रैडल प्रोजेक्ट है।

एप्लिकेशन परियोजना पुस्तकालयों पर निर्भर होने की संभावना है, और यह निम्नलिखित निर्भरता की घोषणा करके किया जाता है:

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

कृपया ध्यान दें कि ऐसा करने के लिए Android Studio GUI का बहुत कम या कोई उपयोग नहीं था।

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


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

1
केवल एक ही उत्तर को शामिल करने के लिए बहुत बहुत धन्यवाद जो समझ में आता है। हर दूसरा जवाब पुराना है और बस काम नहीं करता है। मैंने वर्जीनिया टेक में सीएस की कोशिश भी नहीं की क्योंकि पूरे पहले दो साल ग्रहण में क्लिक करने के लिए सीख रहे थे। यह किसी भी fckn मतलब नहीं था, लेकिन देखकर Gradle एक IDE में यादृच्छिक क्लिक्स का परिणाम है।
dcunited001

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

25

मुझे बस एक आसान तरीका मिल गया है (सीधे .gradle फाइलों में लिखने के बजाय)।

यह एंड्रॉइड स्टूडियो 1.1.0 के लिए है।

  1. मेनू फ़ाइल -> नया मॉड्यूल ... :

    मौजूदा परियोजना का आयात करें

    "आयात मौजूदा परियोजना" पर क्लिक करें।

  2. वांछित पुस्तकालय और वांछित मॉड्यूल का चयन करें।

  3. समाप्त पर क्लिक करें। Android Studio आपके प्रोजेक्ट में लाइब्रेरी आयात करेगा। यह सिंक फाइल को सिंक करेगा।

  4. आयातित मॉड्यूल को अपनी परियोजना की निर्भरता में जोड़ें।

    ऐप फ़ोल्डर पर राइट क्लिक करें -> मॉड्यूल सेटिंग्स खोलें -> निर्भरता टैब पर जाएं -> '+' बटन पर क्लिक करें -> मॉड्यूल डिपेंडेंसी पर क्लिक करें।

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

    लाइब्रेरी मॉड्यूल जोड़ें

  5. ???

  6. फायदा


17

बाहरी पुस्तकालय परियोजना को शामिल करने का सबसे आसान तरीका है (उदाहरण के लिए एक फेसबुक पुस्तकालय को शामिल करना जो निर्भरता फ़ोल्डर में एक निर्देशिका संग्रहीत है):

  1. सेटिंग्स में। ऐड जोड़ें

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
  2. Build.gradle निर्भरता अनुभाग में, जोड़ें

    compile project ('facebook')

सभी को करने के लिए छोड़ दिया गया है परियोजना को सिंक फ़ाइलों के साथ सिंक्रनाइज़ करें।


हाय विलेन क्या सेटिंग्सडियर है यहां
रजनीश मिश्रा

हाय रजनीश। प्रलेखन से: settingsDir बिल्ड की सेटिंग डायरेक्टरी को लौटाता है। सेटिंग्स निर्देशिका वह निर्देशिका है जिसमें सेटिंग फ़ाइल है। रिटर्न: सेटिंग्स निर्देशिका। कभी अशक्त नहीं लौटता।
विलेन

इससे पहले कि दो बिंदुओं / निर्भरता का ध्यान रखना अधिक महत्वपूर्ण है, आपका उत्तर मुझे बहुत मदद करता है .. धन्यवाद
रजनीश मिश्रा

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

15

अपने Android Studio प्रोजेक्ट में लाइब्रेरी के रूप में JAR फ़ाइल जोड़ने का एक सरल तरीका:

a) अपनी * .jar फ़ाइलों को कॉपी करें

ख) अपनी परियोजनाओं के तहत लिबास निर्देशिका में चिपकाएँ :

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

ग) build.gradle में जोड़ें:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

ख) यदि आपका प्रोजेक्ट उदाहरण com.example.MYProject और लाइब्रेरी com.example.ScanAPI से समान नामस्थान com.example है , तो Android Studio आपके निर्माण की जाँच करेगा और आपके प्रोजेक्ट में सभी आवश्यक परिवर्तन करेगा। उसके बाद आप मेनू फाइल -> प्रोजेक्ट स्ट्रक्चर में इन सेटिंग्स की समीक्षा कर सकते हैं ।

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

याद रखें "प्रोजेक्ट स्ट्रक्चर" विकल्प एंड्रॉइड स्टूडियो (0.2.3) के वर्तमान संस्करण में "build.gradle" में कोई भी ऑटो परिवर्तन नहीं कर रहा है। हो सकता है कि यह सुविधा अगले संस्करणों में उपलब्ध हो।


12

विकल्प 1: प्रोजेक्ट के कार्य / निर्देशिका में फ़ाइलें छोड़ें

प्रासंगिक build.gradle फ़ाइल तब अपने आप अपडेट हो जाएगी।

विकल्प 2: build.gradle फ़ाइल को मैन्युअल रूप से संशोधित करें

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

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }

विकल्प 3: एंड्रॉइड स्टूडियो के यूजर इंटरफेस का उपयोग करें

प्रोजेक्ट पैनल में, Controlउस मॉड्यूल पर क्लिक करें, जिस पर आप निर्भरता जोड़ना चाहते हैं और ओपन मॉड्यूल सेटिंग्स चुनें।

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

नीचे-बाएँ कोने में + बटन के बाद निर्भरता टैब का चयन करें। आप निम्न विकल्पों में से सूची चुन सकते हैं:

  • लाइब्रेरी निर्भरता
  • फ़ाइल निर्भरता
  • मॉड्यूल निर्भरता

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

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

स्रोत


10

यह एंड्रॉइड स्टूडियो 1.5+ में मेरे लिए काम करता है

उस प्रोजेक्ट में जहां आप बाहरी लाइब्रेरी प्रोजेक्ट जोड़ना चाहते हैं, मेनू पर जाएं फ़ाइल -> नया -> * नया मॉड्यूल आयात करें **, उस लाइब्रेरी प्रोजेक्ट पर नेविगेट करें जिसे आप अपनी परियोजना में जोड़ना चाहते हैं, इसमें 'लाइब्रेरी' मॉड्यूल जोड़ने का चयन करें आपका प्रोजेक्ट। आपको अपनी परियोजनाओं में सेटिंग मिलेगी। एप्लिकेशन के पास, लाइब्रेरी शामिल है, कुछ इस तरह से:

include ':app', ':library'

निर्भरता अनुभाग में build.gradle (मॉड्यूल: एप्लिकेशन) में जोड़ें :

संकलित परियोजना (': पुस्तकालय')

परियोजना का पुनर्निर्माण करें, और यह बात है।

* आप जितने चाहें उतने लाइब्रेरी (मॉड्यूल) जोड़ सकते हैं। सेटिंग्स में उस मामले में। आपके पास होगा:

 include ':app', ':lib1', ':lib2', ...

और build.gradle में, आपको यह करना होगा:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

9

यदि आपको किसी लाइब्रेरी प्रोजेक्ट के संसाधनों तक पहुँच की आवश्यकता है (जैसा कि आप ABS के साथ करते हैं) यह सुनिश्चित करते हैं कि आप लाइब्रेरी प्रॉजेक्ट "मॉड्यूल" को "लाइब्रेरी" के बजाय "मॉड्यूल डिपेंडेंसी" के रूप में जोड़ें।


9

इसे आप आसानी से कर सकते हैं। मेनू फ़ाइल पर जाएँ -> नया -> आयात मॉड्यूल ... :

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

निर्देशिका के लिए ब्राउज़ करें जिसमें मॉड्यूल शामिल है। समाप्त क्लिक करें:

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

प्रोजेक्ट संरचना पर जाएं और मॉड्यूल निर्भरता जोड़ें :

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

नोट: यदि आपको SDK त्रुटि मिलती है, तो उसे अपडेट करें।


1
मेरी राय में सबसे सरल और तेज़ तरीका है, फिर भी आज के रूप में काम किया है!
mrj

8
  1. प्रेस F4को दिखाने के लिए परियोजना संरचना , पुस्तकालयों या ग्लोबल पुस्तकालयों क्लिक करें, और क्लिक +JAR फ़ाइल जोड़ने के लिए।
  2. मॉड्यूल जोड़ें जो आप चाहते हैं कि जार जोड़ें, निर्भरता टैब का चयन करें , क्लिक करें +, और लाइब्रेरी जोड़ें।

6

GUI के माध्यम से लाइब्रेरी निर्भरता को संपादित करना उचित नहीं है क्योंकि यह आपके build.gradle फ़ाइल में उन परिवर्तनों को नहीं लिखता है। तो आपका प्रोजेक्ट कमांड-लाइन से नहीं बनेगा। हमें build.gradle फ़ाइल को सीधे इस प्रकार संपादित करना चाहिए।

उदाहरण के लिए, निम्नलिखित संरचना को दिया गया:

मेरी परियोजना/

  • एप्लिकेशन /
  • पुस्तकालयों /
    • lib1 /
    • lib2 /

हम तीन परियोजनाओं की पहचान कर सकते हैं। ग्रेडल उन्हें निम्नलिखित नामों से संदर्भित करेगा:

  1. : एप्लिकेशन
  2. : पुस्तकालयों: lib1
  3. : पुस्तकालयों: lib2

एप्लिकेशन परियोजना पुस्तकालयों पर निर्भर होने की संभावना है, और यह निम्नलिखित निर्भरता की घोषणा करके किया जाता है:

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

वास्तव में? अजीब बात है, उनके पास पूरे जीयूआई हैं और फिर भी यह उचित नहीं है। ऐसा कैसे?
अलेक्जेंडर कुलाख़्तिन

जीयूआई के माध्यम से संपादन के रूप में अपने build.gradle फ़ाइल में उन परिवर्तनों को नहीं लिखता है। GUI संपादन केवल IntelliJ के अपने प्रोजेक्ट डेटा में परिवर्तन बचाता है। यह इस समय एक बग है जो भविष्य के रिलीज में तय किया जाएगा। आप Google Android- स्टूडियो टीम लीड से इस उत्तर को संदर्भित कर सकते हैं stackoverflow.com/questions/16678447/…
शक्ति मलिक

5

उत्तर में जोड़ने के लिए: यदि आईडीई कोई त्रुटि नहीं दिखाता है, लेकिन जब आप संकलन करने का प्रयास करते हैं, तो आपको कुछ ऐसा मिलता है:

No resource found that matches the given name 'Theme.Sherlock.Light'

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

मेन्यू फ़ाइल -> परियोजना संरचना -> पहलू -> [पुस्तकालय का नाम] -> "पुस्तकालय मॉड्यूल" की जाँच करें।


5

पहला रास्ता यह मैकबुक के लिए काम कर रहा है।

सबसे पहले दिए गए स्क्रीन के रूप में अपनी build.gradle फ़ाइल चुनें:

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

चयनित स्क्रीन पर निर्भरताएं जोड़ें:

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

सिंक प्रोजेक्ट चुनें।

यदि आपको "प्रोजेक्ट विथ पाथ": सिग्नेचर-पैड 'जैसी त्रुटि मिल रही है, तो प्रोजेक्ट': एप 'में नहीं मिल सकता है, तो कृपया दूसरे तरीके का उपयोग करें:

मेनू फ़ाइल चुनें -> नया -> आयात मॉड्यूल ... :

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

आयात मॉड्यूल पर क्लिक करने के बाद ,

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

मेरे मैकबुक पथ की तरह पुस्तकालय का रास्ता दें:

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

समाप्त पर क्लिक करें । अब आपकी लाइब्रेरी जुड़ गई है।


4

ABS मॉड्यूल आयात करने के बाद (फ़ाइल> प्रोजेक्ट संरचना से) और यह सुनिश्चित करने के लिए कि इसमें एंड्रॉइड 2.2 और समर्थन लाइब्रेरी v4 निर्भरता के रूप में है, मुझे अभी भी आपको @Alex के रूप में निम्न त्रुटि मिल रही थी

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

मैंने अपने मुख्य ऐप मॉड्यूल पर निर्भरता के रूप में नए आयातित मॉड्यूल को जोड़ा और उस समस्या को ठीक किया।


मैंने मॉड्यूल को एक निर्भरता के रूप में जोड़ते हुए सभी चरणों की कोशिश की, लेकिन मेरे पास अभी भी है Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.। ऐसा लगता है कि मेरा मुख्य प्रोजेक्ट लाइब्रेरी प्रोजेक्ट (ABS) के संसाधनों को नहीं देखता है। आईडीई हालांकि कक्षाओं और संसाधनों के संदर्भ को पहचानता है। स्क्रीनशॉट
christiaanderidder

मैं 12 से IDEA 13 में माइग्रेट कर रहा हूं और यह त्रुटि भी है। केवल मेरे सभी आश्रितों के लिए फिर से आयात करने से मदद मिलेगी। सभी मॉड्यूलों को मैन्युअल रूप से हटा दें, संबंधित * .iml फ़ाइलों को हटा दें और अपने कामों को फिर से आयात करें
दिमित्री

4

एंड्रॉइड स्टूडियो 3.0

बस अपने ऐप की बिल्ड.ग्रेड फ़ाइल की निर्भरता ब्लॉक में लाइब्रेरी का नाम जोड़ें ।

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

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


यह वास्तव में ग्रैडल 4 में बदलाव है, न कि एंड्रॉइड स्टूडियो 3। com.android.tools.build:gradle:2.3.3यदि आप "संकलन" का उपयोग जारी रखना चाहते हैं, तो आप एंड्रॉइड स्टूडियो 3 में 3.0.0 के बजाय उपयोग करना जारी रख सकते हैं।
चादुदीपनुवु ३१'१v

3

इस समस्या को हल करने के लिए, आपको बस अपनी प्रोजेक्ट बिल्ड फ़ाइल में एब्स रिसोर्स पथ जोड़ने की आवश्यकता है, बस नीचे की तरह:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

इसलिए, मैं फिर से बिना किसी त्रुटि के संकलन करता हूं।


3

आप एंड्रॉयड स्टूडियो .0.4.0 है, तो आप, अपने निर्माण रास्ते में एक नया फ़ोल्डर बना सकते YourApp/libraries। JAR फ़ाइल की प्रतिलिपि बनाएँ। वहाँ, उस पर राइट क्लिक करें और "लाइब्रेरी जोड़ें"। अब आपके पास एक पॉपअप है। बस अपनी निर्देशिका का चयन करें और ठीक दबाएँ, और यह बात है।


3

बस Android लाइब्रेरी प्रोजेक्ट को मॉड्यूल के रूप में और Build.gradle में आयात करें

प्लगइन लागू करें: 'com.android.library'

उसके बाद, इन चरणों का पालन करें:

  1. मॉड्यूल पर राइट क्लिक करें और खुले मॉड्यूल सेटिंग्स का चयन करें
  2. निर्भरता का चयन करें, पर क्लिक करें +, पुस्तकालय निर्भरता का चयन करें, और पहले से आयातित मॉड्यूल जोड़ें।

3

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 Android Studio 1.0.1 के नवीनतम संस्करण में JAR फ़ाइल और लाइब्रेरी प्रोजेक्ट को जोड़ने का ड्रॉपबॉक्स लिंक है।

कृपया स्क्रीनशॉट के साथ प्रलेखन देखें। एक नए उपयोगकर्ता के लिए यह बहुत आसान है।


2

मुझे इसका हल मिल गया। यह बहुत आसान हैं। Froger_mcs निर्देशों का पालन करें

सुनिश्चित करें कि आप प्रोजेक्ट संरचना में src फ़ोल्डर को स्रोत फ़ोल्डर बनाते हैं -> मॉड्यूल (स्रोत)।

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


2

मूल रूप से, आप अपनी JAR फ़ाइलों को तीन अलग-अलग तरीकों से शामिल कर सकते हैं। अंतिम एक दूरस्थ पुस्तकालय है जो https://bintray.com/ jcenter ऑनलाइन रिपॉजिटरी का उपयोग कर रहा है। लेकिन, यदि आप इसे दो अन्य तरीकों में से एक करते हैं, तो JAR फ़ाइल को आपके प्रोजेक्ट में भौतिक रूप से शामिल किया जाएगा। कृपया इस लिंक https://stackoverflow.com/a/35369267/5475941 को पढ़ेंअधिक जानकारी के लिए को । इस पोस्ट में मैंने बताया कि एंड्रॉइड स्टूडियो में आपकी JAR फ़ाइल को कैसे आयात किया जाए और मैंने सभी संभावित तरीके बताए।

संक्षेप में, यदि यह इस तरह है (स्थानीय पता), तो वे डाउनलोड किए जाते हैं और ये JAR फाइलें भौतिक रूप से परियोजना में हैं:

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

लेकिन, अगर यह इस तरह से एक इंटरनेट पता है, तो वे दूरस्थ पुस्तकालय हैं (bintray.com jcenter हिस्सा) और वे दूर से उपयोग किया जाएगा:

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

मुझे उम्मीद है यह मदद करेगा।


2

बिल्ड ग्रेडेल मॉड्यूल ऐप फ़ाइल खोलें और अपनी निर्भरता जोड़ें। यदि आप लाइब्रेरी डाउनलोड करते हैं, तो बस आयात करें और ग्रेडेल के रूप में निर्माण करें।

अन्यथा साइड ग्रेड मॉड्यूल मॉड्यूल में रिपॉजिटरी जोड़ें:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

पहली रिपॉजिटरी आपके लिए लाइब्रेरी डाउनलोड करेगी।

और डाउनलोड की गई लाइब्रेरी संकलित करें:

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

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


2

मेरे पास लोगों के लिए समस्या का एक अलग कारण था:

repositories {
    mavenCentral()
}

mavenCentral () को jcenter () में जोड़ें और जोड़ें

allprojects {
    repositories {
        jcenter()
    }
}

1

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


1

Android स्टूडियो के लिए:

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

Build.gradle (मॉड्यूल: ऐप) पर क्लिक करें ।

और के लिए जोड़ें

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

और आपकी निर्देशिका "ऐप" में, एक निर्देशिका बनाएं, "लिबास"। फ़ाइल को जोड़ें yourfile.jar:

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

अंत में, ग्रेड फाइल संकलित करें:

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


0

मुझे भी उसी समस्या का सामना करना पड़ा तब मैंने निम्नलिखित चीजों का पालन किया।

  1. मैं अपने AndroidStudio IDE में लाइब्रेरी प्रोजेक्ट को मेनू फाइल -> इंपोर्ट मॉड्यूल मेनू का उपयोग करके मॉड्यूल के रूप में आयात करता हूं

  2. फिर मैं अपने मुख्य मॉड्यूल में चला गया जिसमें मैं एक आश्रित परियोजना के रूप में पुस्तकालय परियोजना चाहता हूं

  3. मुख्य मॉड्यूल पर राइट क्लिक करें (मेरे मामले में इसका नाम ऐप है ) -> ओपन मॉड्यूल सेटिंग -> निर्भरता टैब में जाएं -> बटन + पर क्लिक करें (आपको इसे विंडो के दाईं ओर मिलेगा) -> मॉड्यूल निर्भरता पर क्लिक करें - > सूची से अपनी लाइब्रेरी परियोजना का चयन करें

परिवर्तनों को लागू करें और OKबटन पर क्लिक करें।

इसने मेरे लिए काम किया। मुझे उम्मीद है कि यह दूसरों को भी मदद करेगा।


0

इसे अपनी बिल्ड ग्रेडेल फ़ाइल में जोड़ें:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}

-1

वास्तव में जैसे-जैसे संस्करण बदल रहे हैं, वैसे-वैसे मेनू पर उपलब्ध यूजर इंटरफेस और विकल्प बदल रहे हैं। इन सवालों के अधिकांश जवाब पढ़ने के बाद मुझे अनुमान लगाना पड़ा कि एंड्रॉइड स्टूडियो 1.1.0 के लिए क्या काम करेगा ।

  1. अपने माउस के साथ, मुख्य स्तर पर प्रोजेक्ट का चयन करें (यह वह जगह है जहाँ यह आपके ऐप का नाम दिखाता है)।

  2. राइट क्लिक करें, और मेनू विकल्प नया, फ़ोल्डर, एसेट्स फ़ोल्डर चुनें

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

  4. एंड्रॉइड स्टूडियो के मुख्य मेनू (स्क्रीन के ऊपर) से फ़ाइल -> प्रोजेक्ट संरचना का चयन करें

  5. फिर अपना प्रोजेक्ट नाम चुनें और डिपेंडेंसी टैब पर जाएं।

  6. +डायलॉग बॉक्स के निचले बाएँ प्लस चिह्न ( ) पर क्लिक करें और फ़ाइल निर्भरता चुनें।

  7. अंत में हाल ही में बनाई गई संपत्ति फ़ोल्डर खोलें, JAR फ़ाइलों को चुनें जिसे आपने कॉपी किया था, और फिर लागू करें और क्लिक करें OK

अपनी परियोजना को साफ और पुनर्निर्माण करें।


1
संपत्ति में जार की प्रतियां बनाना एक अच्छा विचार नहीं है, यह अनावश्यक रूप से apk आकार में वृद्धि करेगा
रजनीश मिश्रा

सलाह के लिए धन्यवाद @RajnishMishra मुझे उस पर संदेह था, लेकिन आप इसके बजाय क्या प्रस्ताव करते हैं?
5:
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.