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




बारे आवश्यकता (25)

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

मैं जेएसओएन-ऑब्जेक्ट्स को क्रमबद्ध / deserialize करने के लिए जीसन पुस्तकालय का उपयोग कर रहा हूँ। लेकिन किसी भी तरह पुस्तकालय निर्माण में शामिल नहीं है।

मैंने केवल एक मुख्य परियोजना के साथ एक नई परियोजना बनाई थी। / Libs फ़ोल्डर में gson-2.2.3.jar की प्रतिलिपि बनाई और इसे लाइब्रेरी निर्भरता के रूप में जोड़ा (दायाँ क्लिक-> लाइब्रेरी के रूप में जोड़ें)। इसमें एंड्रॉइड स्टूडियो में जार शामिल है, इसलिए इसे स्रोत फ़ाइलों से संदर्भित किया जा सकता है।

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

compile files('libs/gson-2.2.3.jar')

डी .gradle फ़ाइल में निर्भरताओं के लिए। उसके बाद यह सही ढंग से संकलित करता है लेकिन एप्लिकेशन चलाते समय मुझे ClassDefNotFoundException प्राप्त ClassDefNotFoundException

क्या कोई जानता है कि मैं क्या गलत कर रहा हूं?


Answers

एंड्रॉइड प्रोजेक्ट के libs फ़ोल्डर में बस .jar फ़ाइलों को डालें।

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

ऐप्स ग्रिडल फ़ाइल में कोड की यह पंक्ति बाकी करेगी।

Happy Coding :)


चरण 1: अब आपके app folder तहत आपको libs देखना चाहिए, अगर आप इसे नहीं देखते हैं, तो इसे बनाएं

चरण 2: Drag & Drop the .jar file here , आपको एक प्रॉम्प्ट मिल सकता है "This file does not belong to the project" , बस OK बटन पर क्लिक करें।

चरण 3: अब आपको libs फ़ोल्डर के अंतर्गत जार फ़ाइल देखना चाहिए, जार फ़ाइल पर राइट क्लिक करें और "Add as library", Click OK for prompt "Create Library" चयन "Add as library", Click OK for prompt "Create Library"

चरण 4: अब यह जार जोड़ा गया है।


ये सभी समाधान पुराने हैं। एंड्रॉइड स्टूडियो में अब यह वास्तव में आसान है:

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

अगली स्क्रीन अजीब लगती है, जैसे कि आप कुछ विजेट या कुछ चुन रहे हैं, लेकिन इसे पहले चित्र पर रखें और नीचे स्क्रॉल करें और "JAR या AAR पैकेज आयात करें" ढूंढें

फिर फ़ाइल मेनू से Project Structure लें। खुली विंडो से app चयन करें, फिर dependencies चयन करें, फिर green plus button , module dependency चयन green plus button , फिर आयात किए गए मॉड्यूल का चयन green plus button , फिर OK दबाएं


आप इसे दो विकल्पों के साथ कर सकते हैं।

पहला आसान तरीका।

.jar फ़ाइल को क्लिपबोर्ड पर कॉपी करें और फिर इसे libs फ़ोल्डर में जोड़ें। प्रोजेक्ट में libs फ़ोल्डर देखने के लिए, फ़ोल्डर के ऊपर combobox से परियोजना का चयन करें।

फिर .jar फ़ाइल पर राइट क्लिक करें और लाइब्रेरी के रूप में जोड़ें पर क्लिक करें, फिर मॉड्यूल का चयन करें ठीक है। आप निर्भरता ब्लॉक के भीतर build.gradle फ़ाइल में .jar फ़ाइल देख सकते हैं।

 dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(':okhttp-2.0.0')
        compile 'com.google.code.gson:gson:2.3.1'
    }

दूसरा तरीका यह है कि: हम .jar फ़ाइल को .jar मॉड्यूल के रूप में आयात करके मॉड्यूल में एक .jar फ़ाइल जोड़ सकते हैं, फिर इस मॉड्यूल को हमारे इच्छित मॉड्यूल में जोड़ें।

आयात मॉड्यूल ---> अपनी .jar फ़ाइल चुनें -> एक .jar के रूप में आयात करने से -

फिर CTRL + ALT + SHIFT + S -> प्रोजेक्ट स्टूरर -> जिस मॉड्यूल को आप चाहते हैं उसे चुनें, एक जार -> निर्भरता -> मॉड्यूल निर्भरता जोड़ें। मॉड्यूल का build.gradle स्वचालित रूप से अपडेट हो जाएगा।


menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar

मॉड्यूल में लाइब्रेरी के रूप में स्थानीय जार फ़ाइल जोड़ने के निर्देश यहां दिए गए हैं:

  1. मॉड्यूल निर्देशिका के शीर्ष स्तर में एक 'libs' फ़ोल्डर बनाएं (वही निर्देशिका जिसमें 'src' निर्देशिका है)

  2. build.gradle file में निम्न जोड़ें ताकि आपकी निर्भरता बंद हो:

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
    
  3. एंड्रॉइड स्टूडियो पहले से ही एक gradlew wrapper स्थापित करना चाहिए था। कमांड लाइन से, अपनी प्रोजेक्ट के शीर्ष स्तर पर जाएं (निर्देशिका जिसमें एक gradlew फ़ाइल है)।

    भागो ./gradlew assemble । इस परियोजना को पुस्तकालय के साथ संकलित करना चाहिए। आपको आवश्यकतानुसार अपनी build.gradle फ़ाइल में त्रुटियों को ठीक करने की आवश्यकता हो सकती है।

  4. आईडीई में कोडिंग करते समय एंड्रॉइड स्टूडियो स्थानीय जार फ़ाइलों को समर्थन के लिए पुस्तकालयों के रूप में पहचानने के लिए, आपको कुछ और कदम उठाने की आवश्यकता है:

    4.1। बाएं हाथ पैनल में मॉड्यूल पर राइट क्लिक करें और Open Library Settings चुनें।

    4.2। संवाद के बाएं पैनल पर, Libraries चुनें।

    4.3। बाएं से दूसरे पैनल के ऊपर + चिह्न पर क्लिक करें -> Java

    4.4। अपने स्थानीय जार का चयन करें और इसे परियोजना में जोड़ें।

  5. आपको उपरोक्त ./gradlew कमांड को एक और बार चलाने की आवश्यकता हो सकती है


1) प्रोजेक्ट / ऐप / src फ़ोल्डर के अंदर 'your_libs' फ़ोल्डर बनाएं।

2) अपनी जार फ़ाइल को इस 'your_libs' फ़ोल्डर में कॉपी करें

3) एंड्रॉइड स्टूडियो में, फ़ाइल -> प्रोजेक्ट स्ट्रक्चर -> निर्भरता -> जोड़ें -> फ़ाइल निर्भरता पर जाएं और अपनी जार फ़ाइल पर नेविगेट करें, जो 'src / your_libs' के अंतर्गत होना चाहिए

3) अपनी जार फ़ाइल का चयन करें और 'ओके' पर क्लिक करें

और फिर आप अपने build.gradle पर इस तरह देख सकते हैं: फ़ाइलों को संकलित करें ('src / your_libs / your.jar')


ग्रहण के विपरीत हमें जार डाउनलोड करने और इसे / libs फ़ोल्डर में रखने की आवश्यकता नहीं है। ग्रैडल इन चीजों को संभालती है, हमें केवल ग्रैडल निर्भरताओं को जोड़ने की आवश्यकता होती है, ग्रैडल इसे डाउनलोड करता है और धीरे-धीरे कैश में डालता है।

हमें निर्भरता जोड़ने की जरूरत है:

निर्भरता {compile 'com.google.code.gson: gson: 2.2.4'}

यह है कि हम जार भी डाउनलोड कर सकते हैं और इसे पुस्तकालय के रूप में जोड़ सकते हैं लेकिन सबसे अच्छा अभ्यास ग्रैडल निर्भरताओं को जोड़ना है।


पहले बताए गए कई लोगों की तरह आप जोड़ देंगे

compile files('libs/gson-2.2.3.jar') 

आपकी build.gradle फ़ाइल में।

हालांकि मेरे पास एंड्रॉइड स्टूडियो में एक प्रोजेक्ट है जिसे एक्लिप्स से माइग्रेट किया गया था और इस मामले में "libs" फ़ोल्डर को "lib" नाम दिया गया है, इसलिए मेरे लिए समस्या को हल करने के लिए "एस" को हटा दिया गया है।


एंड्रॉइड स्टुइडो में, मुझे जीसन लिब का प्रबंधन करने के लिए ग्रैडल का उपयोग करना पसंद है।

अपनी build.gradle फ़ाइल में नीचे निर्भरता जोड़ें।

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'}

सब कुछ ठीक है।

आप यह पोस्ट भी देख सकते हैं। Android स्टूडियो में तृतीय पक्ष लाइब्रेरी को एकीकृत करने का सबसे अच्छा तरीका


नए एंड्रॉइड 1.0.2 के लिए आपके build.gradle फ़ाइल में पहले से मौजूद है

फ़ाइल संकलित करें (शामिल करें: ['* .jar'], dir: 'libs')

लाइब्रेरी जार को अपने libs फ़ोल्डर में जोड़ें -> लाइब्रेरी पर राइट क्लिक करें -> लाइब्रेरी के रूप में जोड़ें पर क्लिक करें -> यह आपको प्रोजेक्ट के लिए इसे जोड़ने के लिए कहता है -> अपनी प्रोजेक्ट का चयन करें-> ठीक क्लिक करें निम्न पंक्ति स्वचालित रूप से बनाने के लिए जोड़ दी गई है .gradle

संकलन फ़ाइलें ('libs / android-query.jar')

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


  1. वेबसाइट से लाइब्रेरी फ़ाइल डाउनलोड करें
  2. विंडोज एक्सप्लोरर से कॉपी करें
  3. प्रोजेक्ट एक्सप्लोरर से lib फ़ोल्डर में पेस्ट करें
  4. Ctrl + Alt + Shift + S प्रोजेक्ट संरचना खोलें
  5. निर्भरता टैब का चयन करें, + का उपयोग करके फ़ाइल जोड़ें
  6. टूल बार का उपयोग करके टूल बार सिंक प्रोजेक्ट को स्क्रॉल करें

यह मेरी समस्या हल हो गई। कोशिश करें, अगर कोई और विवरण चाहते हैं तो मुझे बताएं।


मैं कई घंटों तक एक ही चीज़ के साथ संघर्ष कर रहा हूं, जीसन जार को कम काम करने की कोशिश कर रहा हूं। आखिर में मैंने इसे तोड़ दिया - यहां दिए गए कदम हैं:

  1. जीन्स जार (मेरे मामले में, gson-2.2.4.jar ) को libs फ़ोल्डर में रखें
  2. राइट क्लिक करें और 'लाइब्रेरी के रूप में जोड़ें' दबाएं
  3. सुनिश्चित करें कि compile files('libs/gson-2.2.4.jar') को compile files('libs/gson-2.2.4.jar') आपके build.gradle फ़ाइल में है (या compile fileTree(dir: 'libs', include: '*.jar') फ़ाइल compile fileTree(dir: 'libs', include: '*.jar') यदि आप कई जार फ़ाइलों का उपयोग कर रहे हैं )

    संपादित करें: implementation files('libs/gson-2.2.4.jar') उपयोग करें implementation files('libs/gson-2.2.4.jar') (या implementation fileTree(dir: 'libs', include: '*.jar') ) एंड्रॉइड स्टूडियो 3.0+ में

  4. एक साफ निर्माण करें (आप शायद एंड्रॉइड स्टूडियो में यह जुर्माना कर सकते हैं, लेकिन यह सुनिश्चित करने के लिए कि मैंने टर्मिनल में अपने ऐप के रूट फ़ोल्डर में नेविगेट किया है और टाइप gradlew clean । मैं मैक ओएस एक्स पर हूं, कमांड अलग हो सकता है आपकी प्रणाली

उपर्युक्त चार करने के बाद, यह ठीक काम करना शुरू कर दिया। मुझे लगता है कि 'लाइब्रेरी के रूप में जोड़ें' चरण वह था जिसे मैंने पहले याद किया था, और यह तब तक काम नहीं करता जब तक कि मैंने इसे साफ़ नहीं किया।

[संपादित करें - build.gradle चरण जोड़ा जो भी आवश्यक है क्योंकि अन्य ने इंगित किया है]


मैक ओएस एक्स पर:

  1. लाइब्रेरी के रूप में जार जोड़ें (lib को jar पर खींचें, दाएं के रूप में जोड़ें पर क्लिक करें)

  2. build.grade संकलन विवरण जोड़ें

  3. gradle v1.6 स्थापित करें ( gradle v1.6 उपयोग करें)

    • ब्रूड स्थापित ग्रेडल
    • gradle -v
    • यदि v1.6 नहीं है, तो होमब्रू को अपग्रेड करें
  4. धीरे-धीरे साफ़ करें (पुनर्निर्माण एंड्रॉइड काम नहीं किया)

यह मुझे हल किया।


  1. "ऐप" के स्तर पर "libs" फ़ोल्डर जोड़ा गया।
  2. इस परियोजना में सभी "जार" जोड़ा गया।
  3. अगला, "libs" फ़ोल्डर में सभी जार का चयन किया,
  4. चयनित वस्तुओं पर राइट क्लिक करें, और "लाइब्रेरी जोड़ें" कहें
  5. तो आपको प्रोजेक्ट एक्सप्लोरर के भीतर जार विस्तार विकल्प मिलेगा।

मैंने देखा "CTRL + ALT + SHIFT + S -> प्रोजेक्ट स्ट्रक्चर -> ऐप-मॉड्यूल -> निर्भरता" पहले से ही एक प्रविष्टि थी "(डीआईआर: 'libs', इसमें शामिल हैं: '* .jar')" under " संकलन-विकल्प ", शुरुआत में। और ऊपर वर्णित चरणों के अनुसार जार जोड़ने के बाद, "build.gradle" को नए जोड़े गए जार के लिए प्रविष्टियां मिलीं।


एंड्रॉइड स्टूडियो 1.1.0 में। मैंने निम्नलिखित प्रश्नों का पालन करके इस प्रश्न को हल किया:

1: jar फ़ाइल libs निर्देशिका में रखो। (खोजक में)

2: ओपन मॉड्यूल सेटिंग्स, बाएं-नीचे कोने पर निर्भरता पर जाएं, एक प्लस बटन है। प्लस बटन पर क्लिक करें और फिर "फ़ाइल निर्भरता" चुनें। यहां आप जार फ़ाइल देख सकते हैं। इसे चुनें और इसे हल किया गया है।


compile fileTree(dir: 'libs', include: '*.jar') ठीक काम करता है लेकिन compile files(...) नहीं करता compile files(...) स्टूडियो बीटा 0.8.1 के साथ परीक्षण किया है


मैंने इसे बनाने के लिए सिर्फ एक पंक्ति जोड़कर काम किया .gradle:

 dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    compile 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
    }

ऊपरी दाएं कोने में "अभी सिंक करें" पर क्लिक करना न भूलें।

मैं एंड्रॉइड स्टूडियो 1.0.1 का उपयोग कर रहा हूँ।


एंड्रॉइड स्टूडियो 2.1 में मैं इस तरह का पालन करता हूं,

गोटो ऐप -> src-> मुख्य -> संपत्ति फ़ोल्डर (यदि उपलब्ध नहीं है तो इसे बनाएं) -> अपनी जेएआर फाइलें डालें

आपके build.gradle में इस तरह निर्भरता जोड़ें,

compile files('src/main/assets/jsoup.jar')
compile files('src/main/assets/org-apache-xmlrpc.jar')
compile files('src/main/assets/org.apache.commons.httpclient.jar')
compile files('src/main/assets/ws-commons-util-1.0.2.jar')

अभी सिंक करें। अब आपकी जेएआर फाइलें उपयोग करने के लिए तैयार हैं।


मेरा जवाब मूल रूप से ऊपर दिए गए कुछ सही लेकिन अपूर्ण उत्तरों को इकट्ठा कर रहा है।

  1. ओपन build.gradle
  2. निम्नलिखित जोड़ें:

    dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    }
    

    यह निर्भरताओं को जोड़ने के दो अलग-अलग तरीकों के लिए समर्थन की अनुमति देगा। compile fileTree(dir: 'libs', include: ['*.jar']) (जैसा कि @Binod उल्लेख किया गया है) कंपाइलर को किसी भी जार के लिए फ़ोल्डर libs के अंतर्गत देखने के लिए कहता है। ऐसे फ़ोल्डर 'libs' बनाने के लिए यह एक अच्छा अभ्यास है जिसमें जार पैकेज शामिल होंगे जो हमारे एप्लिकेशन को उपयोग करने की ज़रूरत है।

लेकिन यह मेवेन निर्भरता के लिए भी समर्थन की अनुमति देगा। संकलन 'com.google.code.gson:gson:2.3' (जैसा कि @saneryee द्वारा उल्लिखित है) यह केंद्रीय रिमोट रिपोजिटरी में निर्भरता जोड़ने के लिए एक और अनुशंसित तरीका है और हमारे / libs "स्थानीय भंडार" में नहीं है। यह मूल रूप से उस पैकेज के उस संस्करण को देखने के लिए धीरे-धीरे कह रहा है और यह प्रोजेक्ट को संकलित करते समय संकलक को इस पर विचार करने के लिए कह रहा है (इसे कक्षा में रखते हुए)

पीएस: मैं दोनों का उपयोग करता हूं


मुझे एंड्रॉइड स्टूडियो का निर्भरता प्रबंधक तीसरे पक्ष निर्भरताओं (जैसे यहां वर्णित जीएसएन) के प्रबंधन के लिए काफी आसान और शक्तिशाली पाया गया। चरण-दर-चरण मार्गदर्शिका प्रदान करना जो मेरे लिए काम करता है (नोट: इन चरणों का परीक्षण एंड्रॉइड स्टूडियो 1.6 और विंडोज प्लेटफॉर्म पर आगे के संस्करणों के लिए किया जाता है)।

चरण -1: गोटो "बिल्ड> पुस्तकालयों और निर्भरताओं को संपादित करें ..." यह संवाद "परियोजना संरचना" खोल देगा

चरण -2: "ऐप" चुनें और फिर "निर्भरता" टैब का चयन करें। फिर "जोड़ें> 1 लाइब्रेरी निर्भरता" का चयन करें

चरण 3: "लाइब्रेरी निर्भरता चुनें" संवाद दिखाया जाएगा, खोज में "gson" निर्दिष्ट करें और "खोज बटन" दबाएं

चरण 4: वांछित निर्भरता खोज सूची में दिखाया जाएगा, com.google.code.gson का चयन करें: gson: 2.7 (जब मैंने उत्तर लिखा था तो यह नवीनतम संस्करण है), ठीक है दबाएं

"परियोजना संरचना" संवाद पर ठीक दबाएं। ग्रैडल तदनुसार आपकी बिल्ड स्क्रिप्ट अपडेट करेगा।

उम्मीद है कि यह मदद करेगा :)


परियोजना में राइट क्लिक करें

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done

नीचे दिए गए स्क्रीनशॉट का पालन करें:

1:

2:

3:

आप इसे देखेंगे:


मैंने 3 चरणों से ऊपर किया और मेरे लिए इसका काम आकर्षण।

(मैं एंड्रॉइड स्टूडियो 2.1.2 का उपयोग कर रहा हूँ)

चरण 1

  • Build.gradle (मॉड्यूल: ऐप) के तहत अपने जार पैकेज नाम को जोड़ें (उदाहरण के रूप में compile 'com.squareup.okhttp3:okhttp:3.3.1' ) को संकलित करें

चरण 2: ऐप फ़ोल्डर पर राइट क्लिक करें -> नया -> मॉड्यूल

चरण 3: JAR आयात करें पर क्लिक करें .एएआर पैकेज फिर अपने पैकेज को ब्राउज़ करें। एक उदाहरण के रूप में: OkHttp.jar


एक फ़ोल्डर libs बनाएँ। अपनी .jar फ़ाइल जोड़ें। उस पर राइट क्लिक करें और आपको जार को निर्भरता के रूप में मिल जाएगा। इस पर क्लिक करें। आपको बस इतना करना है। आप अपनी build.gradle फ़ाइल में निर्भर निर्भरताओं को पा सकते हैं।


1 - Gradle पृष्ठभूमि की जानकारी।

2 - Gradle अवधारणाएं।

3 - प्रारंभिक चरण।

4 - प्रारंभिक चरण (Cont।)।

5 - Gradle क्या है?

6 - कॉन्फ़िगरेशन चरण।

यह LINK देखें





android android-studio gradle gson dependency-management