2012-02-06 14 views
10

मैं प्रोजेक्ट लॉन्च करने की कोशिश कर रहा हूं, जो एंड्रॉइड के लिए नया है, जिसे बनाया जा रहा है और अच्छी तरह से तैनात किया जा रहा है।अनपेक्षित शीर्ष-स्तर का विस्तार: java.lang.IllegalArgumentException: पहले से ही

UNEXPECTED TOP-LEVEL EXCEPTION: 
java.lang.IllegalArgumentException: already added: Lcom/.../model/AvailabilityRequest$DAY_TIME_PREFERENCE; 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.dex.file.DexFile.add(DexFile.java:163) 
[2012-02-06 17:32:11 - main-app] Dx  at com.android.dx.command.dexer.Main.processClass(Main.java:486) 
... 
[2012-02-06 17:32:11 - main-app] Dx  at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
[2012-02-06 17:32:11 - main-app] Dx 1 error; aborting 
[2012-02-06 17:32:11 - main-app] Conversion to Dalvik format failed with error 1 

मैं इस बेवकूफ बात के लिए समय की भारी मात्रा को मार डाला गया है: लेकिन हर बार जब मैं एक कोशिश कर ग्रहण से एप्लिकेशन को शुरू करने के लिए, मैं इस त्रुटि मिलती है। जाहिर है, यह ज्ञात समस्या है, लेकिन मेरे लिए कुछ भी काम नहीं करता है।
मैं क्या है:

ऑपरेशन प्रणाली - ओएस एक्स है, जो मुझे लगता है कि महत्वपूर्ण है,
आईडीई - ग्रहण 3.7.1
एडीटी - संस्करण: 15.0.1.v201111031820-219398
बिल्ड उपकरण - Maven

क्या मैं अब तक की कोशिश की है:
- गुण> जावा बिल्ड पथ -> एंड्रॉइड xyz को छोड़कर सभी पुस्तकालयों को हटाने के लिए पुस्तकालय, फिर मेवेन-> प्रोजेक्ट कॉन्फ़िगरेशन अपडेट करें, परियोजना को साफ़ करने के लिए भी;
- बंद करने और ग्रहण को फिर से खोलने के साथ जादू;
- परियोजना को हटाने और पुनर्निर्माण के लिए नृत्य और इसके लिए पुस्तकालय (त्रुटि संदेश के पाठ के अनुसार, स्रोतों का कुछ डुप्लिकेशंस है, जो मुख्य प्रोजेक्ट में उपयोग की जाने वाली 2 पुस्तकालयों में से एक में हैं)।

ऊपर दिए गए संस्करणों में से एक (आमतौर पर पहला वाला) काम करने लगता है, लेकिन मैं इसे काम करने के लिए 20 मिनट खर्च कर सकता हूं या कई घंटे ..., आज मैं इसे बिल्कुल प्रबंधित नहीं कर सकता।

किसी भी विचार की सराहना की जाएगी।

+0

यह पाया गया: http://code.google.com/p/android/issues/detail?id=20398#c22 ऐसा लगता है कि इससे संबंधित कुछ है। – makaron

+0

क्या आप m2e-android का उपयोग कर रहे हैं? –

+0

यदि ऐसा है तो आप यह स्पष्ट करने के लिए अपना प्रश्न संपादित करना चाहेंगे। –

उत्तर

3

ठीक है, जहां तक ​​मैं समझता हूं, मुख्य बात यह थी कि मैं मेवेन का निर्माण उपकरण के रूप में उपयोग कर रहा था। मैं बिना किसी समस्या के प्रोजेक्ट का निर्माण और तैनाती कर सकता था, लेकिन मैं इसे पर्यावरण (ग्रहण) से शुरू नहीं कर सका।

यदि मैं गलत नहीं हूँ, जब आप के ग्रहण करने Run-> चलाएँ विन्यास और अपनी परियोजना शुरू करने के लिए एक Android एप्लिकेशन बनाने जाते हैं, आप मूल रूप से साथ .apk निर्माण करने के लिए ग्रहण (एंड्रॉयड एसडीके) पूछना चींटी आपके लिए, मेवेन के साथ नहीं। ग्रहण प्रोजेक्ट को चींटी के साथ बनाता है और जेनरेटेड। एपीके को डिवाइस/सिम्युलेटर पर धक्का देता है। लेकिन चूंकि परियोजना की सभी सेटिंग्स में हैं।पोम फाइलें, चींटी परियोजना का निर्माण नहीं कर सकती है और इस तरह की त्रुटियों को देती है।

समाधान:
के बाद आप इसे भागो मेनू के माध्यम से तैनात किए गए, नहीं सही डिवाइस/सिम्युलेटर से अपने अनुप्रयोग शुरू करो। यदि आप अपने ऐप को डीबग करना चाहते हैं, तो डीडीएमएस 'डीबग का उपयोग करें, न कि एक ग्रहण प्रदान करता है। यदि आपको पता नहीं है कि डीडीएमएस कहां है (मेरे मामले में मेरे जैसे) - मैक यह विंडो-> खुला परिप्रेक्ष्य-> अन्य ... मेनू से डीडीएमएस चुनें; आप इसे ग्रहण के डीबग और जावा के साथ एक बुकमार्क के रूप में रख सकते हैं। डीडीएमएस में आपको डीबग समेत सभी अच्छे टूल मिलेंगे।

पीएस यह एक शुरुआत से और शुरुआती लोगों के लिए एक प्रतिक्रिया है ... यदि आप कुछ गलत देखते हैं, तो कृपया मुझे बताएं या मेरे जवाब को संपादित करने के लिए स्वतंत्र महसूस करें।

6

एडीटी इस तरह का अपवाद फेंक देगा यदि आपके ग्रहण कक्षा में एक ही नाम/पैकेज के एक से अधिक वर्ग शामिल हैं। इस मामले में यह आपके मेवेन निर्भरताओं में AvailabilityRequest कक्षा के एक से अधिक उदाहरणों का सामना कर रहा है।

आप यह पता लगा सकते हैं कि कौन सी क्लासपाथ निर्भरताओं में एक ही कक्षा फाइलें हैं (Ctrl-Alt-T दबाकर और उपलब्धता Request में टाइप करना यह करेगा)।

फिर आप एमओई पीओएम संपादक में अपना पीओएम खोल सकते हैं और निर्भरता पदानुक्रम टैब पर जा सकते हैं। यह आपको अपरिवर्तनीय निर्भरता का चयन करने की अनुमति देगा, जिसे आप राइट-क्लिक करके बाहर कर सकते हैं और "मावेन आर्टिफैक्ट को बाहर निकालें ..." का चयन कर सकते हैं जो स्वचालित रूप से आपके पीओएम में <exclusions> तत्व जोड़ देगा। यह आपके ग्रहण क्लासपाथ से डुप्लिकेट जेएआर को हटा देगा और आपको परियोजना बनाने की अनुमति देगा।

इसके अलावा, आपको सावधान रहना चाहिए कि आप अपने पीओएम में किस निर्भरता को जोड़ते हैं।

+0

यह कोशिश कर रहा है, धन्यवाद! – makaron

+1

रिकार्डो, आपके समर्थन के लिए धन्यवाद (+1), मुझे समाधान नहीं मिला, लेकिन मैंने जिस तरह से किया: यह मुझे ऐप डीबग करने की इजाजत देता है, जो इन सब का उद्देश्य था। – makaron

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