2010-01-12 10 views
7

मेरे पास लाइब्रेरी-केवल एंड्रॉइड ग्रहण परियोजना (कोई मुख्य श्रेणी, केवल लाइब्रेरी कक्षाएं नहीं है) जिसे मैं अपने मुख्य एंड्रॉइड एप्लिकेशन प्रोजेक्ट में शामिल करना चाहता हूं।एंड्रॉइड एप्लिकेशन प्रोजेक्ट में अन्य ग्रहण परियोजनाओं सहित

मैं बिल्ड पथ पर गया और प्रोजेक्ट टैब पर "बिल्ड पथ पर आवश्यक परियोजनाओं" में लाइब्रेरी प्रोजेक्ट जोड़ा, और इसे "ऑर्डर एंड एक्सपोर्ट" टैब पर चेक किया।

हालांकि, जब एप्लिकेशन चलाया जाता है, तो यह VerifyError अपवाद को छोड़ देता है, क्योंकि लाइब्रेरी प्रोजेक्ट की कक्षा एपीके में एक साथ पैक नहीं होती है।

इसका कोई समाधान?

उत्तर

6

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

यदि लाइब्रेरी प्रोजेक्ट एंड्रॉइड विशिष्ट कक्षाओं का उपयोग करता है, तो जब आप इसे जावा प्रोजेक्ट बनाते हैं तो आपको बिल्ड पथ पर android.jar भी जोड़ना होगा। यदि आपके पास 1.6 प्लेटफार्म स्थापित है, तो यह आपके एसडीके निर्देशिका के अंदर "प्लेटफ़ॉर्म/एंड्रॉइड-1.6/android.jar" होगा।

+0

आप सही हैं। यदि मैं लाइब्रेरी प्रोजेक्ट को जावा प्रोजेक्ट (एंड्रॉइड प्रोजेक्ट के विपरीत) बनाता हूं, तो कक्षाएं पैक हो जाती हैं। धन्यवाद! – yuku

1

मुझे ग्रहण संस्करण का उपयोग कर एक समान समस्या (डिवाइस पर लोड होने पर VerifyError अपवाद के साथ): 3.6.2। मैंने साझा करने के लिए कुछ सामान्य वर्गों के साथ एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट बनाया था, जो एंड्रॉइड एसडीके कक्षाओं पर निर्भर था। एंड्रॉइड लाइब्रेरी प्रोजेक्ट को 'सामान्य' जावा प्रोजेक्ट बनाने के बजाय मैंने पुस्तकालय प्रोजेक्ट में पुस्तकालय संदर्भ के रूप में लाइब्रेरी प्रोजेक्ट को लाइब्रेरी का उपयोग करने वाली परियोजनाओं के लिए एंड्रॉइड टैब के रूप में जोड़ा। इसने गायब वर्ग अपवाद को हल किया।

3

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

+0

यह काम करता है! मैंने नाम "src" से "sth-src" में बदल दिया है और यह काम करता है। – 42n4

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