2010-09-13 10 views
13

ओ एंड्रॉइड में एंड्रॉइड लाइब्रेरी प्रोजेक्ट में बाहरी जार का संदर्भ कैसे लें। मैं आपकी verbiage कैसे प्यार करता हूँ।Eclipse

मेरे पास कुछ परियोजनाओं के साथ एक कार्यक्षेत्र है। ऐप 1 और ऐप 2 एंड्रॉइड एप्लिकेशन हैं। कॉमन एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट है। ऐप 1 और ऐप 2 कॉमन पर निर्भर करता है (एंड्रॉइड टैब के माध्यम से जुड़ा हुआ)।

आम में कुछ बाहरी निर्भरताएं हैं, अर्थात् httpmime & apache-mime4j, जो जार फ़ाइलों के रूप में मौजूद है।

किसी कारण से, ऐसा प्रतीत होता है कि मुझे सफल होने के संकलन के लिए ऐप 1 और ऐप 2 के निर्माण पथ में अपने माइम जार जोड़ने की आवश्यकता है। यह वास्तव में गूंगा लगता है। सामान्य जावा में, मैं ऐप 1 और ऐप 2 के निर्माण पथ में सामान्य जोड़ता हूं और चीजें काम करती हैं। क्या यह उम्मीद है कि मुझे अपने जार को हर एंड्रॉइड एप्लिकेशन में जोड़ना होगा?

-Andy

नोट:। मैं निर्माण पथ कॉन्फ़िगर नहीं करते हैं जैसा कि ऊपर वर्णित मैं "प्रकार org.apache.james.mime4j.message.SingleBody हल नहीं किया जा सकता है यह परोक्ष रूप से से संदर्भित है आवश्यक। क्लास फाइलें | DataCallUtil.java |/ऐप 1/सामान्य/उपयोग | लाइन 364 "

+1

+1 अच्छा परिचय * और * के लिए। – an00b

+0

http://stackoverflow.com/questions/22962935 यह – Sandy09

उत्तर

8

मुझे लगता है कि omermuhammed और अमित को यह तथ्य नहीं मिला कि विसार एंड्रॉइड लाइब्रेरी प्रोजेक्ट के बारे में बात कर रहा है। उन परियोजनाओं के लिए, मुझे नहीं लगता कि एक जार बनाना संभव है। (जार के पास सभी एंड्रॉइड संसाधनों के साथ कुछ लेना देना नहीं है)।

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

एंड्रॉइड लाइब्रेरी प्रोजेक्ट अभी भी सही होने का तरीका है, लेकिन अभी भी वहां से पहले जो कुछ भी था (यानी कुछ भी नहीं) में एक बड़ा सुधार है। उत्कृष्ट प्रश्न के लिए

+2

+1 यह स्पष्ट करने के लिए कि "सेटिंग्स पैकेज का हिस्सा नहीं हैं"। – an00b

+0

@alocaly +1 इस पर कोई अपडेट? क्या लाइब्रेरी प्रोजेक्ट की संदर्भित जार फ़ाइलों को प्रत्येक एंड्रॉइड एप्लिकेशन प्रोजेक्ट में शामिल करने का कोई तरीका नहीं है? वैसे, कस्टम एंट बिल्ड का उपयोग करके एंड्रॉइड जार फ़ाइल बनाना संभव है लेकिन अभी भी संदर्भ परियोजनाओं में संदर्भित जार फ़ाइलों को शामिल करने की आवश्यकता है :(सम्मान। – eros

0

आम परियोजना को एक जार में संकलित करने और इसे अपने ऐप 1 या ऐप 2 परियोजनाओं में बाहरी जार के रूप में जोड़ने का प्रयास करें।

+0

जांचें मैं यह कैसे कर सकता हूं? दस्तावेज़ (http://developer.android.com/guide/developing/other-ide.html#libraryProject) राज्य, "हालांकि, एक लाइब्रेरी प्रोजेक्ट एक मानक एंड्रॉइड एप्लिकेशन प्रोजेक्ट से अलग है जिसमें आप इसे सीधे अपने आप संकलित नहीं कर सकते .apk या एंड्रॉइड प्लेटफॉर्म पर चलाएं। इसी तरह, आप लाइब्रेरी प्रोजेक्ट को स्वयं निहित जेएआर फ़ाइल में निर्यात नहीं कर सकते, जैसा कि आप एक वास्तविक पुस्तकालय के लिए करेंगे।इसके बजाय, आपको पुस्तकालय को एक निर्भर अनुप्रयोग के निर्माण पथ से लाइब्रेरी का संदर्भ देकर, अप्रत्यक्ष रूप से लाइब्रेरी को संकलित करना होगा, फिर उस एप्लिकेशन को बनाना। " – Visser

+0

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

+0

टैग के साथ अपने एंड्रॉइडमैनीफेस्ट.एक्सएमएल में जरूरी लाइन भी जोड़ना न भूलें। मैं उस प्रक्रिया को समझता हूं जिसके बारे में आप बात कर रहे हैं। लेकिन आपके पहले 7 शब्द, "आम परियोजना को एक जार में संकलित करें "कैसे? ऐसा करने के लिए कुछ कस्टम चींटी लिखें? मैं वही करूँगा जो मैं कर रहा हूं और हर जगह निर्भरता जोड़ना होगा। ऐसा कुछ है जो मुझे ग्रहण अच्छी तरह से करने की उम्मीद है। अगर ऐसा नहीं होता है, तो टी नहीं टोपी ठीक है। मैं सिर्फ यह जानना चाहता हूं कि यह एंड्रॉइड/एक्लिप्स के साथ एक कमी है। – Visser

1

omermuhammed के उत्तर को बढ़ाने के लिए, यदि सामान्य प्रोजेक्ट एक बार नहीं बदला जा रहा है, तो एक जार बनाना और अन्य परियोजनाओं में इसका उपयोग करना एक अच्छा समाधान है।

एक जार बनाने के लिए ग्रहण पर परियोजना पर राइट क्लिक करें -> निर्यात -> जावा -> JAR फ़ाइल है, तो फ़ोल्डर जार में शामिल करना चाहते का चयन करें, आपके मामले में मुझे लगता है कि इस फ़ोल्डरों जनरल शामिल और libs (libs httpmime & apache-mime4j JARS के साथ फ़ोल्डर है), लेकिन शायद न तो res और न ही आपकी प्रोजेक्ट की मूल निर्देशिका (AndroidManifest.xml जैसी फ़ाइलों के साथ जो एक ही फ़ाइल के साथ समस्याएं उत्पन्न करेगी निर्भर परियोजनाएं)।