2010-08-17 17 views
5

this SDK guide के अनुसार, इकाई परीक्षण एक पुस्तकालय परियोजना एक मानक आवेदन परियोजना बनाने के द्वारा प्राप्त किया जा सकता नहीं मिल रहा, संदर्भ पुस्तकालय परियोजना और फिर साधन इकाई परीक्षण के लिए आवेदन कर सकते हैं।स्व निहित परीक्षण पुस्तकालय परियोजना पुस्तकालय वर्गों

हालांकि, मैं संदेश

No tests found with test runner 'JUnit 3'.

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

नोट: परियोजनाएं ठीक से संकलित करती हैं। परीक्षण परियोजना भी एमुलेटर के लिए ठीक स्थापित करता है। लेकिन कंसोल में मैं देख सकता हूं कि यह <library>.apk की तलाश में है, जो निश्चित रूप से अस्तित्व में नहीं है क्योंकि मैं इसे परीक्षण प्रोजेक्ट में लाइब्रेरी के रूप में संकलित कर रहा हूं।

किसी को भी यह काम करने के लिए मिला है? और यदि हां, तो यहां चाल चलाना क्या है?

अद्यतन: किसी समस्या को खोजने और ठीक करने के बाद, जो वास्तव में परीक्षण कक्षाओं (!) सहित था, परीक्षण धावक अब सभी परीक्षणों को पा सकता है। लेकिन, सभी परीक्षणों निम्नलिखित अपवादों के साथ असफल:

java.lang.NoClassDefFoundError: <nameOfClassInLibraryProject>

nameOfClassInLibraryProject पुस्तकालय परियोजना में परिभाषित वर्ग हैं। इन कक्षाओं को परीक्षण परियोजना में संकलित किया जाना चाहिए, और वास्तव में, सबकुछ ठीक से संकलित करता है। लेकिन परीक्षण प्रोजेक्ट चलाते समय, रनटाइम लाइब्रेरी कक्षाओं को नहीं ढूंढता है।

उत्तर

5

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

Working with Library Projects लेख के अनुसार:

Instead, you must compile the library indirectly, by referencing the library from a dependent application's build path, then building that application.

समस्या यह है कि मैं इस व्याख्या मतलब है कि पुस्तकालय परियोजना परियोजनाओं में जोड़ा जाना चाहिए थामें टैब जावा पथ बिल्ड। ऐसा करने से टेस्ट प्रोजेक्ट संकलित हो जाता है क्योंकि लाइब्रेरी कोड स्पष्ट रूप से कंपाइलर के लिए उपलब्ध है। लेकिन चूंकि लाइब्रेरी को अपने आप में .jar या .apk में संकलित नहीं किया गया है, इसलिए पुस्तकालय कक्षाएं डिवाइस पर कभी भी तैनात नहीं होती हैं।

समाधान नहीं को, परियोजनाओं, बल्कि स्रोत टैब पर स्थित पुस्तकालय परियोजना जोड़ने लिंक स्रोत ... बटन का उपयोग कर जोड़ने पुस्तकालय/src फ़ोल्डर है। और हाँ, यह लाइब्रेरी src फ़ोल्डर है, लाइब्रेरी प्रोजेक्ट रूट नहीं, जिसे परीक्षण प्रोजेक्ट में जोड़ा जाना चाहिए।

+1

मैं, एक ही समस्या (NoClassDefFoundError) गए थे, हालांकि एक आत्म निहित परीक्षण lib परियोजना के साथ नहीं, बल्कि एक आवेदन परियोजना है कि एक Android पुस्तकालय परियोजना संदर्भित के लिए एक परीक्षण परियोजना में। आपके समाधान ने कम से कम काम नहीं किया, इसे समझने के लिए बहुत बहुत धन्यवाद। – jpo

+1

इसके लिए धन्यवाद। केवल तभी जब मैंने परियोजना के गुणों से परियोजना संदर्भ हटा दिया और पुस्तकालय परियोजना के रूप में पुस्तकालय जोड़ा, तो यह काम किया। –

+1

लाइब्रेरी के रूप में Android अनुभाग में, आपके प्रोजेक्ट गुणों में लाइब्रेरी को जोड़ना आसान है, जैसा कि यहां बताया गया है: http: // stackoverflow।कॉम/प्रश्न/8248196/कैसे-टू-एड-ए-लाइब्रेरी-प्रोजेक्ट-टू-ए-एंड्रॉइड-प्रोजेक्ट – theV0ID

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