2011-11-01 9 views
20

मेरे पास एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट है जो मेरे लिए बहुत अच्छी तरह से काम कर रहा है, लेकिन अब मुझे इसे बाहरी जार में "रूपांतरित करने" में रूचि है।एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट को बाहरी जार में कैसे परिवर्तित करें?

मैं यह कैसे कर सकता हूं?

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

उत्तर

29

किसी भी Android पुस्तकालय परियोजना एक बाहरी जार करने के लिए परिवर्तित किया जा सकता है?

अभी नहीं।

यदि नहीं, तो प्रतिबंध या सीमाएं क्या हैं?

अपने पुस्तकालय विशुद्ध रूप से जावा कोड है, तो कोई संसाधनों के साथ, आप एक जार .class फाइलों से बाहर है, बस के रूप में आप नियमित रूप से जावा के साथ होता है बना सकते हैं।

यदि आपकी लाइब्रेरी संसाधनों का उपयोग करती है, तो आप अभी भी ऊपर के रूप में एक JAR बना सकते हैं। हालांकि, आपको प्रतिबिंब या getIdentifier() के माध्यम से R मानों (उदा।, R.layout.main) को देखने की आवश्यकता होगी, और आपके संसाधन JAR में पैक नहीं किए जाएंगे, लेकिन उन्हें अलग से वितरित करना होगा।

भविष्य में, निर्माण उपकरण को पुस्तकालय परियोजनाओं से वितरण योग्य जेएआर फाइलों को बनाने का समर्थन करना चाहिए, संसाधनों के साथ पूरा होना चाहिए। वर्तमान निर्माण उपकरण जेएआर बनाते हैं, लेकिन उन्हें वितरित करने के लिए डिज़ाइन नहीं किया गया है बल्कि इस समय आंतरिक निर्माण कलाकृतियों की बजाय।

+2

धन्यवाद। क्या मैं सही ढंग से समझता हूं कि .class फ़ाइलों में से एक जेएआर बनाना उतना आसान है जितना [jar cf jar-file input-files] (http://download.oracle.com/javase/tutorial/deployment/jar/build.html)? साथ ही, क्या आप 'getIdentifier()' के माध्यम से संसाधनों को अलग-अलग वितरित करने के तरीके के बारे में कुछ और बता सकते हैं? – uTubeFan

+1

@uTubeFan: "क्या मैं सही ढंग से समझता हूं कि .class फ़ाइलों में से एक जेएआर बनाना जार सीएफ जार-फ़ाइल इनपुट-फाइल जितना सरल है?" - संभवतः। मैं चींटी '' कार्य स्वयं का उपयोग करता हूं। "इसके अलावा, क्या आप getIdentifier() के माध्यम से संसाधनों को अलग-अलग वितरित करने के तरीके के बारे में कुछ और बता सकते हैं?" - उम, ठीक है, अगर वे जेएआर फ़ाइल में नहीं हैं, और जेएआर के पुनर्विक्रेता को फाइलों की आवश्यकता है, तो पुनर्विक्रेता को उन फ़ाइलों को किसी भी तरह से प्राप्त करने की आवश्यकता है।मैं एक ज़िप संग्रह की सिफारिश करता हूं जिसमें जार और 'res/'पेड़ शामिल है। – CommonsWare

+0

हाय @uTubeFan मान लीजिए कि एक प्रोजेक्ट ** MyTranslator ** पर विचार करें जिसमें मैं कुछ पाठ का अनुवाद कर रहा हूं, इसके लिए मैंने एक जार फ़ाइल आयात की है ** xyztranslator.jar **। अब मैं ** MyTranslator ** प्रोजेक्ट को ** ** jar ** फ़ाइल में कनवर्ट करना चाहता हूं जैसे कि मैं ** MyTranslator ** प्रोजेक्ट और ** xyztranslator.jar ** में सभी कक्षाओं में सभी कक्षाओं का उपयोग कर सकता हूं। बस मेरा सवाल यह है कि ** मैं एक .jar फ़ाइल में एक एंड्रॉइड एप्लिकेशन कैसे निर्यात कर सकता हूं जो पहले ही आयात की गई जार फाइलें ** –

2

http://developer.android.com/guide/developing/projects/index.html#LibraryProjects दावा करता है कि आप इन्हें बाहरी जार में निर्यात नहीं कर सकते हैं। विशिष्ट बोली:

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

+0

धन्यवाद। उसी पृष्ठ में, एक खंड भी है जो कहता है: "आपको नई लाइब्रेरी प्रोजेक्ट सुविधा का उपयोग करने के लिए एसडीके टूल्स आर 14 या नए की आवश्यकता है जो प्रत्येक लाइब्रेरी प्रोजेक्ट को अपनी जेएआर फ़ाइल में उत्पन्न करता है।" क्या इसका मतलब यह है कि अगर मैं एसडीके आर 14 (या नया) का उपयोग करता हूं तो आपके द्वारा उद्धृत लिमिटेशन अब मौजूद नहीं है? – uTubeFan

+2

ईमानदार होने के लिए, मुझे यकीन नहीं है। यह शब्द निचले स्तर से उद्धृत भाग के विपरीत है, हालांकि यह केवल खराब वाक्यांश हो सकता है। – Sinjo

+0

r14 redid कैसे वे जार निर्यात करने में सक्षम होने के उद्देश्य से लाइब्रेरी प्रोजेक्ट को संभालते हैं लेकिन मैं अभी भी यह नहीं समझ सकता कि जेनरेट किए गए संसाधनों को रखते हुए इसे कैसे किया जाए। – schwiz

संबंधित मुद्दे