दिलचस्प पोस्ट
जावा एप्लिकेशन में जेटीबल ऑब्जेक्ट कैसे मुद्रित करें I तत्वों को स्विच करने के लिए कोई नेटी jQuery फ़ंक्शन है? एक विशिष्ट निश्चित पते पर सूचक कस्टम अराएडैप्टर में कस्टम GetFilter एंड्रॉइड जब एक सी + + डिस्ट्रक्टर कहा जाता है? एक्लिप्स् गैलीलियो सी और मिनजीड के साथ बनाए गए किसी एप्लिकेशन को आइकन कैसे जोड़ सकते हैं? प्रतिस्थापन के साथ एक निर्धारित समय पर दैनिक सूचना दोहराएं दृश्य लोड होने पर AngularJS इनिशियलाइज़ कोड चलाना UIImagePickerController स्क्रीन को भर नहीं करता है आर में एक डेटा फ्रेम के सभी कॉलमों को कैसे साजिश करना मॉकिटो का उपयोग करके निजी विधि का परीक्षण करना सीएसवी के लिए एक HiveQL क्वेरी के परिणाम मैं कैसे आउटपुट करूँ? जिपरअर्चिव अमान्य ज़िप फ़ाइल बनाता है छोरों के लिए लेकर-आधारित उपयोग करते समय इटरेटर की आवश्यकता होती है टैबलोलिंक्स के साथ कोणीय जेल का उपयोग करना

एक ग्रहण एंड्रॉइड प्रोजेक्ट को लाइब्रेरी / जार जोड़ना

एलेप्से में एंड्रॉइड प्रोजेक्ट में तीसरी पार्टी लाइब्रेरी (जेएआर) को जोड़ने के बारे में यह दो-भाग का प्रश्न है।

प्रश्न का पहला भाग यह है कि जब मैं अपने एंड्रॉइड प्रोजेक्ट को तीसरे पक्ष के जार (लाइब्रेरी) को जोड़ने की कोशिश करता हूं तो मुझे पहले की समस्या मिलती है

XML को पार्स करने में त्रुटि: अनबाउंड उपसर्ग

क्योंकि मैं उस जार से एक वर्ग का उपयोग करने की कोशिश कर रहा हूं (और किसी भी तरह परिभाषित उपसर्ग की आवश्यकता है)। क्या चल रहा है?

दूसरा, (फिक्सिंग करने के बाद – इसका जवाब नीचे दिया गया है), मेरा आवेदन एंड्रॉइड पर काम नहीं करता है और मुझे डीबगर (लॉगकैट) के माध्यम से पता चलता है कि जो वर्ग मैं उपभोग करने का प्रयास कर रहा हूं वह मौजूद नहीं है।

द्वारा कारण: java.lang.ClassNotFoundException: com.github.droidfu.widgets.WebImageView …

क्यों, जब मुझे ग्रहण में कोई संकलन या लिंकर त्रुटि नहीं मिलती है, तो क्या यह समस्या एमुलेटर पर है?

ये दो सवाल बयानबाजी हैं, मैं खुद को नीचे जवाब देने जा रहा हूं। इस मंच में अन्य पद समस्या की ओर रेंगते हैं और कहीं और चर्चा होती है, लेकिन मुझे लगता है कि अगले व्यक्ति के साथ आने के लिए मैं और अधिक स्पष्ट रूप से सहायक हो सकता हूं।

Solutions Collecting From Web of "एक ग्रहण एंड्रॉइड प्रोजेक्ट को लाइब्रेरी / जार जोड़ना"

अब गायब वर्ग समस्या के लिए

मैं एक ईक्लिप्स जावा ईई डेवलपर हूँ और बिल्ड पथ में "यूज़र लाइब्रेरी" तंत्र के माध्यम से तीसरे पक्ष के पुस्तकालयों को जोड़ने के कई वर्षों के लिए आदत में रहा हूं। बेशक, तीसरे पक्ष के लाइब्रेरी को जोड़ने के कम से कम तीन तरीके हैं, मेरी विनम्र राय में, जो मैंने उपयोग किया वह सबसे खूबसूरत है।

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

इसके बजाय, तृतीय-पक्ष लाइब्रेरी को आयात करने के लिए (व्यापक रूप से उपलब्ध) निर्देशों का पालन करें, फिर इसे बिल्ड पथ के माध्यम से जोड़कर (जो इसे संकलन के उद्देश्यों के लिए एक्लिप्स से ज्ञात करता है)। यहां चरण-दर-चरण है:

  1. अपने मेजबान विकास प्रणाली को पुस्तकालय डाउनलोड करें
  2. अपने एक्लिप्स / एंड्रॉइड प्रोजेक्ट में एक नया फ़ोल्डर, लिब्स बनाएं।
  3. लाइब्रेरी पर राइट-क्लिक करें और आयात -> जनरल -> फाइल सिस्टम चुनें, फिर अगला, फाइल सिस्टम में ब्राउज़ करें ताकि लाइब्रेरी की पैरेंट डायरेक्टरी को खोज सकें (यानी: जहां आपने इसे डाउनलोड किया है)।
  4. ठीक क्लिक करें, फिर बाएं फलक में डायरेक्टरी नाम (चेकबॉक्स पर न क्लिक करें) पर क्लिक करें, फिर दाएं फलक में संबंधित JAR को देखें। यह आपके प्रोजेक्ट में पुस्तकालय डालता है (शारीरिक रूप से)
  5. अपने प्रोजेक्ट पर राइट-क्लिक करें, बिल्ड पथ -> बिल्ड पथ कॉन्फ़िगर करें, फिर पुस्तकालय टैब पर क्लिक करें, फिर Jars जोड़ें …, लिब्स निर्देशिका में अपने नए जार पर नेविगेट करें और इसे जोड़ें। (यह संयोगवश, वह क्षण है जिस पर आपका नया जार एंड्रॉइड पर उपयोग के लिए परिवर्तित होता है।)

ध्यान दें

चरण 5 की आवश्यकता नहीं हो सकती है, यदि लिब पहले से आपके बिल्ड पथ में शामिल है। बस इसे जोड़ने से पहले उसका अस्तित्व सुनिश्चित करें।

आपने जो कुछ किया है वह दो चीजों को पूरा करता है:

  1. आपके एंड्रॉइड प्रोजेक्ट में एक Dalvik- परिवर्तित जार शामिल है
  2. अपने प्रोजेक्ट के स्रोत कोड के विकास के दौरान (जो कि संकलन है) तीसरे पक्ष के वर्गों को खोजने के लिए एक्लेप्से के लिए उपलब्ध जावा परिभाषाएं बनाता है।

सुनिश्चित करें कि आपकी तृतीय पक्ष जार आपकी परियोजनाओं में "लिब्स" फ़ोल्डर है और जब आप अपने एप्लिकेशन को पैकेज करते हैं तो उन्हें .apk में डाल दिया जाएगा। आप डिवाइस पर रनटाइम त्रुटियां देख सकते हैं यदि जार में कुछ भी समर्थित नहीं है, लेकिन इसके अलावा मुझे इसके साथ बहुत सफलता मिली है I

एक लाइब्रेरी प्रोजेक्ट सेट करना

एक लाइब्रेरी प्रोजेक्ट एक मानक एंड्रॉइड प्रोजेक्ट है, ताकि आप एक नया ऐप्लिकेशन प्रोजेक्ट के रूप में एक नया बना सकें।

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

इसके बाद, यह प्रोजेक्ट के गुणों को निर्धारित करने के लिए सेट करें कि यह एक लाइब्रेरी प्रोजेक्ट है:

पैकेज एक्सप्लोरर में, लायब्रेरी प्रोजेक्ट को राइट-क्लिक करें और गुण चुनें। गुण विंडो में, बाईं ओर "एंड्रॉइड" गुण समूह का चयन करें और दाईं ओर लाइब्रेरी गुणों को ढूंढें। "पुस्तकालय है" चेकबॉक्स चुनें और लागू करें क्लिक करें। गुण विंडो को बंद करने के लिए ओके पर क्लिक करें। नई परियोजना को अब एक पुस्तकालय परियोजना के रूप में चिह्नित किया गया है। जैसा कि आप नीचे दिए गए अनुभागों में वर्णित हैं, आप इसमें स्रोत कोड और संसाधनों को बढ़ाना शुरू कर सकते हैं।

यदि आप एडीटी संस्करण 22 का उपयोग कर रहे हैं, तो आपको ऑर्डर और एंड्रॉइड निजी लाइब्रेरी को एंड्रॉइड निर्भरताएं और प्रोजेक्ट बिल्ड पथ में निर्यात टैब की जांच करनी होगी

सबसे पहले, लापता उपसर्ग की समस्या

यदि आप अपनी लेआउट फाइल में कुछ लेते हैं जो किसी तीसरे पक्ष से आती है, तो आपको इसके उपसर्ग का उपभोग करने की आवश्यकता हो सकती है, "droidfu:" जैसे कुछ प्रकार जो एक्सएमएल में कई जगहों पर होता है:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage" android:layout_width="75dip" android:layout_height="75dip" android:background="#CCC" droidfu:autoLoad="true" droidfu:imageUrl="http://img.hiwab.com/android&usg=ALkJrhgErRZnP8Ugmv1kU0W1NtaRQ3CN9A/opensourceprojec.gif" droidfu:progressDrawable="..." /> 

यह जार से बाहर आता है, लेकिन आपको नये "xmlns: droidfu" को भी जोड़ना होगा

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:droidfu="http://github.com/droidfu/schema" ...> 

या आपको अनबाउंड उपसर्ग त्रुटि मिलती है मेरे लिए, यह तृतीय पक्ष पुस्तकालय के पृष्ठों से दिए गए सभी उदाहरणों को कॉपी और पेस्ट करने में विफल रहा था।

XML को पार्स करने में त्रुटि: अनबाउंड उपसर्ग

संसाधन '/ प्लेबैडी / रेस' मौजूद नहीं है

मुझे ऊपर की दो त्रुटियां मिलीं और अंत में मैंने इसे हल किया।

अपने प्रोजेक्ट -> गुण -> जावा बिल्ड पथ पर राइट-क्लिक करें -> googleadmobadsdk (चयन करें और इसे ऊपर रखें), फिर आप चलाएंगे और समस्या हल हो जाएगी। यह मेरी रनटाइम त्रुटि हल हो गई है

स्रोत को अपने कार्यक्षेत्र के बाहर फ़ोल्डर में रखें परियोजना-एक्सप्लोरर में राइट क्लिक करें और "आयात करें …" का चयन करें

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

फिर, परियोजना एक्सप्लोरर में अपनी मुख्य परियोजना पर राइट क्लिक करें गुणों का चयन करें, फिर बाईं ओर एंड्रॉइड चुनें। नीचे दिए गए लाइब्रेरी अनुभाग में, "जोड़ें" पर क्लिक करें ..

नक्शा-गुब्बारे पुस्तकालय अब आपके प्रोजेक्ट में जोड़ने के लिए उपलब्ध होना चाहिए ..

ग्रहण में पथ बनाने के लिए जाएं, फिर ऑर्डर और निर्यात पर क्लिक करें, फिर लाइब्रेरी / जार की जांच करें, और फिर ऊपर बटन पर क्लिक करें ताकि उसे पहले संकलित करने के लिए सूची के शीर्ष पर ले जायें।