जार मिसमैच को निर्भरता सूची में android-support-v4.jar के 2 संस्करण मिले


130

मैं एक एंड्रॉइड ऐप (मुफ्त / भुगतान) के 2 संस्करण बनाने की कोशिश कर रहा हूं। मेरे पास एक एंड्रॉइड लाइब्रेरी है जिसमें दोनों के लिए आम फाइलें हैं। मैंने एक नया एंड्रॉइड प्रोजेक्ट बनाया और लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं, लेकिन नीचे त्रुटि प्राप्त करें:

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.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
    Length: 349252
    SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
    Length: 337562
    SHA-1: 27c24d26e4c5d57976e6926367985548678e913c

इसे हल करने के बारे में कोई विचार? मैं बिना किसी सफलता के बिल्ड पाथ के साथ खेल रहा हूं।


मुझे एक बहुत ही सरल उपाय मिला है जो ऐसी स्थितियों में काम करता है, नीचे मेरे उत्तर की जांच करें
gprathour

जवाबों:


177

इसे हल करने के बारे में कोई विचार?

एक हटाओ।

मैं बिना किसी सफलता के बिल्ड पाथ के साथ खेल रहा हूं।

चरण # 1: पूर्ववत करें। यदि आप निर्माण पथ के साथ खिलवाड़ कर रहे हैं, तो R16 या ग्रहण के लिए ADT प्लगइन के उच्च संस्करण पर, आप इसे गलत कर रहे हैं।

चरण # 2: जार के उन दो संस्करणों में से एक को चुनें, या अपने एसडीके इंस्टॉलेशन के "एक्स्ट्रा" क्षेत्र से एक को चुनें।

चरण # 3: सही JAR डालें App Library

चरण # 4: एक को हटा दें App Free, क्योंकि यह उस JAR को उठाएगा App Library

इसके बजाय आपका स्वागत है कि दोनों स्थानों ( App Freeऔर App Library) में एक ही वास्तविक JAR फ़ाइल है , हालांकि यह बिना किसी कारण के अतिरिक्त स्थान लेता है।


1
@ नेक्रोनट: सभी एक ही जार का उपयोग करते हैं। उदाहरण के लिए, उन परियोजनाओं में से प्रत्येक में नवीनतम को कॉपी करें।
कॉमन्सवेयर

@CommonsWare: कैसे पता करें कि कौन सा नवीनतम है?
मेहुल जोसर

2
@MehulJoisar: यह जार के लेखकों पर निर्भर है। के मामले में android-support-v4.jar, नवीनतम आपके SDK इंस्टालेशन में से एक है।
कॉमन्सवेयर

5
@MehulJoisar: मैं इसका जवाब नहीं दे सकता। मैं आमतौर पर android-support-v4.jarएसडीके से नवीनतम लेता हूं और इसे सभी पुस्तकालय परियोजनाओं में कॉपी करता हूं (प्लस एसडीके से एक हटाएं)।
कॉमन्सवेयर

1
मुझे अभी यह समस्या थी, लेकिन यह पूरी तरह से नीले रंग से बाहर आ रहा था, जैसा कि कई अन्य (अधिक कठिन) ग्रहण / एंड्रॉइड समस्याएं हैं। यह उत्तर प्रभाव को ठीक करता है लेकिन स्पष्ट रूप से इसका कारण नहीं है।
जो लेप

24
  1. ऐप फ्री से android-support-v4.jar को डिलीट करें
  2. ऐप लाइब्रेरी से ऐप फ्री में एक ही फाइल जोड़ें

@Lee Chun Hoe क्या आप मुझे बता सकते हैं कि मैक ओएस में इस रास्ते पर कैसे जाना है। मैं android-support-v4.jar को हटाना चाहता हूं।
राकेश

@ राकेश एक्लिप्स पैकेज एक्सप्लोरर में, अपनी परियोजना का विस्तार करें, libs फ़ोल्डर के तहत, उस android-support-v4.jar फ़ाइल को हटा दें।
ली चुन होई

12

उपरोक्त समाधान ज्यादातर समस्या का समाधान करते हैं। इन समाधानों का उपयोग करने के बाद और समस्या बनी रहती है। फिर

प्रोजेक्ट फ़ोल्डर पर जाएं -> libs-> और "android-support-v4.jar" को हटाएं

उम्मीद है कि यह आपकी समस्या को हल करेगा क्योंकि यह मेरी समस्या को हल करता है।


11

कुछ परिदृश्य ऐसे होते हैं जहाँ आपके पास एक से अधिक लाइब्रेरी प्रोजेक्ट होते हैं जो android-support-v4.jarउनके libsपथ का निर्माण करते हैं और आपकी परियोजना दोनों के प्रति निर्भरता रखती है। उदाहरण के लिए कहो मेरे मामले में मेरे कार्यक्षेत्र में निम्नलिखित पुस्तकालय परियोजनाएं हैं,

  • libfacebook
  • libsherlockactionbar

ये दोनों परियोजनाएं स्वतंत्र हैं और मेरे रूप project.propertiesनिम्नलिखित हैं,

# Project target.
target=android-17
android.library.reference.1=../libfacebook
android.library.reference.2=../libsherlockactionbar

जब मैं अपनी परियोजना का निर्माण करता हूं, तो मुझे एक जार मिसमैच की समस्या होती है, जिसमें एक ही फाइल की दो प्रतियों के डुप्लिकेट संदर्भ होते हैं। मैंने इस मुद्दे को हल करने के लिए जो किया वह थोड़ा मुश्किल है। मैं नाम के एक नए पुस्तकालय प्रोजेक्ट बनाया libcommonsअन्य सभी के लिए एक अभिभावक के रूप पुस्तकालय सहित मेरी कार्यक्षेत्र में परियोजनाओं, libfacebookऔर libsherlockactionbar। तब मैं अन्य सभी परियोजनाओं से समर्थन पुस्तकालय हटा दिया और रखा केवल एक प्रतिलिपि के अंदर libcommonsकी libs फ़ोल्डर। फिर मैंने libcommonsअपने सभी अन्य पुस्तकालय परियोजनाओं के संदर्भ के रूप में जोड़ा है । एक बार मेरे कार्यक्षेत्र को साफ करने के बाद, सब कुछ एक आकर्षण की तरह काम करता है।


8

यह फ़ाइलों को हटाने और जोड़ने की तुलना में अधिक सुंदर फिक्स है!

आपको बस इसकी आवश्यकता है:

  1. प्रोजेक्ट ऐप नि: शुल्क पर राइट क्लिक करें
  2. "Android उपकरण"> "समर्थन लाइब्रेरी जोड़ें" पर जाएं
  3. अनुमतियों को स्वीकृत करें और इसे लाइब्रेरी को अपडेट करने दें
  4. प्रोजेक्ट ऐप लाइब्रेरी के लिए इस प्रक्रिया को दोहराएं

Android समर्थन लाइब्रेरी तब सिंक में होगी (:


धन्यवाद - इससे मेरी समस्या हल हो गई। मुझे BaseGameUtils जोड़ना था और यह त्रुटि मिली :)
neowhoru

@neowhoru, कोई बात नहीं! साझा करने के लिए खुशी! ~
cokeby190

1
खुशी है कि यह @MuhammedRefaat मदद की! (:
cokeby190

7

बहुत सरल समाधान

एक बहुत ही सरल समाधान ने मेरे मामले के लिए काम किया, बस उसी (android-support-v4.jar) जार फ़ाइल को सभी प्रोजेक्ट्स पर कॉपी करें।अधिक संघर्ष नहीं होगा।

1 किसी भी एक परियोजना के libs फ़ोल्डर से जार फ़ाइल android-support-v4.jar की प्रतिलिपि बनाएँ।

2 दूसरे प्रोजेक्ट के लिबर्स फोल्डर से जार फाइल android-support-v4.jar को डिलीट करें जो पहले से मौजूद है।

3 पहली परियोजना की नई कॉपी की गई जार फ़ाइल को दूसरी परियोजना के फ़ोल्डर में पेस्ट करें।

जार बेमेल मुद्दे को अब तक सुलझा लिया जाएगा।


5

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


4

संकल्प:

  1. 'मुक्त' परियोजना> Android उपकरण> सहायता लाइब्रेरी जोड़ें पर राइट क्लिक करें।
  2. Same पेड ’प्रोजेक्ट पर भी यही काम करें।
  3. सभी परियोजनाओं को साफ करें

2

जांचें कि क्या आपके लिए अप्रासंगिक परियोजनाएं खुली हैं, क्योंकि मेरे लिए यह मामला था, ऐसा लग रहा था कि जार फाइलें एक अलग परियोजना से संबंधित थीं, जिसके साथ मैं काम नहीं कर रहा था, इसलिए मैंने बस उस परियोजना को बंद कर दिया, एक साफ किया मैं जिस परियोजना पर काम कर रहा हूँ, उसका निर्माण और अब समस्या नहीं है! आशा है कि यह किसी की मदद करता है!



1

अच्छा .. यह मेरे लिए काम करता है:

के लिए जाओ

प्रोजेक्ट फ़ोल्डर> libs

फिर, "android-support-v4.jar" हटाएं

फिर

परियोजना> साफ

यह काम करेगा!


1

मेरे पास बस यह मुद्दा था, लेकिन मैंने परस्पर विरोधी android-support-v4.jar को हटाने के बजाय इसका नाम बदलकर सिर्फ android-support-v4_PROJECT.jar कर दिया। कर दिया, जिससे विरोध दूर हो गया।

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


0

आपको बस अपने प्रत्येक प्रोजेक्ट पर ठीक उसी Android-support-v4.jar चेकसम की आवश्यकता है। इसके लिए, आप अपनी सभी परस्पर विरोधी परियोजनाओं / लाइब्रेरी में उनमें से एक को कॉपी / पेस्ट कर सकते हैं।

और कुछ नहीं करना, साफ करना और आनंद लेना :)


0

हो सकता है कि आप उसी समय 2 प्रोजेक्ट खोलें (दोनों Android-support-v4.jar का उपयोग करके)। I close 1 project and every thing ok

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.