2010-08-08 10 views
7

मैं निर्देशों कैसे एक Android पुस्तकालय परियोजना बनाते हैं, और एक Android आवेदन में इसका इस्तेमाल करने पर यहाँ का पालन किया:R.java फ़ाइल

http://developer.android.com/guide/developing/eclipse-adt.html

लेकिन यह है काम नहीं कर रहा। मैं देख सकता हूं कि लाइब्रेरी प्रोजेक्ट मेरे एप्लिकेशन में जोड़ा गया है लेकिन मैं इसमें कुछ भी संदर्भ नहीं दे सकता क्योंकि यह निर्माण नहीं करेगा। Lib से R.java फ़ाइल को मेरे एप्लिकेशन प्रोजेक्ट में नहीं जोड़ा जा रहा है, इसलिए lib प्रोजेक्ट में कई त्रुटियां हैं, हर जगह यह अपनी स्वयं की R.java फ़ाइल को संदर्भित करने का प्रयास करती है।

मुझे नहीं पता कि इसका इसके साथ क्या कुछ लेना है, लेकिन कंसोल में ऐसे संदेश हैं जो "पैकेज 'लिब पैकेज' में विशेषता 'एक्स' के लिए कोई संसाधन पहचानकर्ता नहीं मिला है। मेरा लाइब्रेरी पैकेज मेरे पास किए गए कस्टम व्यू के लिए परिभाषित कुछ स्टाइल करने योग्य विशेषताएं हैं, जिनमें से सभी को इस कंसोल संदेश में शिकायत की जा रही है। लाइब्रेरी बस ठीक है, और मुझे उन संदेशों को कंसोल में नहीं मिलता है जब तक कि मैं लाइब्रेरी को अपने एप्लिकेशन में नहीं लगाता , इसलिए मुझे नहीं पता कि इसके साथ क्या हो रहा है।

मैं वास्तव में यह काम करना चाहता हूं। मैंने इसे पूरा करने के लिए दो पूरे दिन बिताए हैं। कोई भी विचार नहीं है। कृपया

+0

मुझे एक ही समस्या है और मैं कस्टम विशेषताओं का उपयोग नहीं कर रहा हूं। मैं बस अपने मुख्य अनुप्रयोग में मेरी पुस्तकालय आर दिखाना चाहता हूं। ऐसा लगता है कि ग्रहण _src फ़ाइल को सही ढंग से उत्पन्न करता है, लेकिन पुस्तकालय/जेन फ़ोल्डर के अंदर उत्पन्न आर वर्ग, मेरे मुख्य प्रोजेक्ट के अंदर लिंक नहीं होता है। मुझे क्या करना चाहिए? मैं इसे खुद से लिंक नहीं करना चाहता, यह बाद में चीजों को तोड़ देगा। – Spidey

उत्तर

14

उत्तर मेरे conundrum के लिए एर था कि पुस्तकालय में एक attrs.xml फ़ाइल थी जो मैंने बनाया कस्टम दृश्य के लिए कुछ कस्टम विशेषताओं को परिभाषित किया था। मैंने attrs.xml को हटा दिया और कस्टम व्यू कोड में मानों को हार्डकोड किया, लाइब्रेरी का पुनर्निर्माण किया, और समस्या हल हो गई।

हालांकि यह अच्छा नहीं है, इसका मतलब यह है कि कस्टम विशेषताओं वाले कस्टम दृश्य पुस्तकालयों में उपयोग नहीं किए जा सकते हैं। मुझे आशा है कि Google इसे ठीक करेगा।

+0

मैंने किसी भी attrs.xml का उपयोग नहीं किया है, लेकिन मेरा एप्लिकेशन नहीं बनाया गया है, मैं अन्य जावा कक्षाओं (जो गतिविधि या सेवा या रिसीवर द्वारा विस्तारित नहीं हैं) को संदर्भित कर सकते हैं – Sam

+0

@ क्रिस्टोफर पेरी क्या आपने [या आपको पता है] सबमिट किया है एक बग रिपोर्ट? मैं सहमत हूं, Google को इसे ठीक करना चाहिए। पुस्तकालय में कस्टम विचारों को लागू करने में असमर्थ होने के कारण पूरी तरह से गैरकानूनी है। – AedonEtLIRA

+0

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

0

यह वास्तव में फ़ाइल डुप्लिकेट का मामला है। आप एक ऐसी परियोजना नहीं बना सकते जिसमें एक ही फ़ाइल के एक से अधिक उदाहरण शामिल हों। एक एंड्रॉइड प्रोजेक्ट की प्रकृति के कारण एक्सएमएल फाइलें आम तौर पर पहली बार नकारात्मक निर्माण को अस्वीकार करती हैं।

+0

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

+1

आप * एक ही फाइल के एक से अधिक उदाहरण के साथ एक परियोजना बना सकते हैं - उदाहरण के लिए, 'splashscreen_lite.png' और' splashscreen_pro.png'। जैसा कि @ ईटन श्वार्टज़ कहते हैं, इन्हें बिल्डिंग समय पर विलय कर दिया जाएगा, जिसमें लाइब्रेरी प्रोजेक्ट संसाधनों पर एप्लिकेशन प्रोजेक्ट संसाधनों को प्राथमिकता दी जा रही है। –

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