2012-11-22 25 views
33

मैंने नया फेसबुक एसडीके 3.0 बीटा लागू किया है। लाइब्रेरी प्रोजेक्ट में एंड्रॉइड सपोर्ट लाइब्रेरी v4 शामिल है। मेरे पास अपने स्वयं के प्रक्षेपण (हालांकि एक अलग संस्करण) पर समर्थन पुस्तकालय भी है। जब मैं एक पुस्तकालय के रूप में फेसबुक एसडीके जोड़ने मैं कंसोल पर अगले त्रुटि मिलती है:निर्भरता पर एंड्रॉइड डुप्लिकेट समर्थन लाइब्रेरी के लिए फेसबुक एसडीके

Jar mismatch! Fix your dependencies 
Found 2 versions of android-support-v4.jar in the dependency list, 
but not all the versions are identical (check is based on SHA-1 only at this time). 
All versions of the libraries must be the same at this time. 

मैं buildpath पर libs फ़ोल्डर को बाहर करने की कोशिश की है, लेकिन त्रुटि बनी हुई है।

मुझे दोनों जगहों पर एक ही .jar रखना होगा। क्या मुझसे कोई चूक हो रही है? विचार है कि मैं अपने स्वयं के प्रोजेक्ट की समर्थन लाइब्रेरी का उपयोग करूँ (इसे अद्यतन रखने के लिए)।

उत्तर

122

ऐसा लगता है कि विभिन्न परियोजनाएं दो अलग-अलग समर्थन पुस्तकालयों का उपयोग कर रही हैं और इसलिए चेकसम अलग है।

आप चाहिए दोनों फेसबुक एसडीके परियोजना और एप्लिकेशन को आप का निर्माण कर रहे के लिए दोहराने इस।

जब मैं इस त्रुटि है तो मुझे क्या करना:

  1. सही परियोजना पर क्लिक करें।

  2. एंड्रॉइड टूल्स पर होवर करें।

  3. "समर्थन पुस्तकालय जोड़ें ..."

  4. पुस्तकालय को डाउनलोड करने स्वीकार करें पर क्लिक करें।

यह दो चीजों को बीमा करता है: ए। आपको Google स्रोतों से समर्थन लाइब्रेरी का नवीनतम संस्करण मिलता है, और बी। आपके पास अपनी सभी परियोजनाओं में एक ही लाइब्रेरी है।

हैप्पी कोडिंग!

+1

ठीक है, इसलिए मुझे समर्थन लाइब्रेरी पर अद्यतन होने पर हर बार (मेरे प्रोजेक्ट और एफबी की लाइब्रेरी प्रोजेक्ट) अपडेट करना होगा?बिंदु बी कुछ ऐसा है जिसे मैंने नहीं सोचा था। धन्यवाद! – nsemeniuk

+0

आपने मेरा दिन बचाया! –

+0

शुद्ध खुशी !!! – thepoosh

1

बस अपनी परियोजना में से किसी एक को हटाएं, इसे कक्षा पथ से हटा दें और अपनी परियोजना को पुनर्निर्माण करने का प्रयास करें।

+0

विचार मेरी proyect में एक रखने के लिए है ... – nsemeniuk

1

शीर्ष उत्तर में उल्लिखित मेनू के माध्यम से समर्थन पुस्तकालयों का एक ही संस्करण स्थापित करना काफी अच्छा समाधान है।

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

उदाहरण के लिए आपके एसडीके फ़ोल्डर (सी: \ प्रोग्राम फ़ाइलें (x86) \ एंड्रॉइड \ एंड्रॉइड-एसडीके \ एक्स्ट्रा \ एंड्रॉइड \ के अंदर इन जेएआर फाइलें हैं) जिन्हें आप एसडीके प्रबंधक चलाते समय अपडेट किया जा रहा है, तो आप सिर्फ फेसबुक (या किसी अन्य पुस्तकालय) और आपकी परियोजनाओं दोनों में से एक को संदर्भित कर सकता है। अंत में, जेएआर फाइलों से कोड आपके classes.dex पर पैक हो जाता है। आपको libs फ़ोल्डर में समर्थन लाइब्रेरी की भी आवश्यकता नहीं है।

इसके अलावा: आप Gradle निर्माण प्रणाली और उसके निर्भरता प्रबंधन या यहाँ तक कि Maven का उपयोग करते हैं आप इस तरह की समस्या नहीं होगी, लेकिन वे और अधिक समय और ज्ञान सेट अप करने के लिए सही ढंग से की आवश्यकता है।

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