2012-03-22 15 views
7

प्राप्त करने के लिए मेरे पास एक प्रोजेक्ट है जो दो लाइब्रेरी प्रोजेक्ट का संदर्भ देता है। एडीटी और एसडीके टूल्स को version 17 पर अपग्रेड करने के बाद, ऐप क्रैश हो जाता है जैसे ही यह लाइब्रेरी प्रोजेक्ट में से किसी एक में परिभाषित कक्षा के संदर्भ को हिट करता है।अद्यतन एसडीके टूल्स और एडीटी 17 और अब VerifyErrors

Unable to resolve superclass of Lcom/my/package/name/MyActivity; (118) 
Link of class 'Lcom/my/package/name/MyActivity;' failed 
VFY: unable to find class referenced in signature (Lcom/my/package/name/MyActivity;) 

और:

FATAL EXCEPTION: main 
    java.lang.VerifyError: my/package/name/util/SomeClass 
    at my.package.name.App.onCreate(App.java:120) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:122) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4340) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    at dalvik.system.NativeStart.main(Native Method) 

(मेरे पैकेज और कक्षाओं कि जिस तरह से नामित नहीं कर रहे हैं कर रहे हैं, बस यहाँ पोस्ट करने के लिए उन्हें संशोधित)

किसी भी क्या हो रहा है पर विचारों जैसे त्रुटियाँ यहाँ? जहां तक ​​मैं कह सकता हूं कि कोई बिल्ड त्रुटियां नहीं हैं और मेरी प्रोजेक्ट ऐसा लगता है कि यह लाइब्रेरी प्रोजेक्ट को सही तरीके से संदर्भित कर रहा है।

+0

क्या आपने अपनी परियोजनाओं की सफाई और पुनर्निर्माण करने का प्रयास किया था? –

+0

मैंने ताज़ा किया, मैंने साफ किया, पुनर्निर्मित, बंद, खोला, रोया और कुछ अन्य चीजें। ;) सफाई कुछ भी नहीं बदलती प्रतीत होती है, लेकिन मुझे कुछ ऐसा मिला जो नीचे था (नीचे देखें)। हालांकि धन्यवाद! – cottonBallPaws

उत्तर

12

मुझे एक ही समस्या थी। इस पोस्ट को ढूंढना: मुझे कुछ निराशा बचाओ।

+0

उस लिंक के लिए बहुत बहुत धन्यवाद! खूनी नरक मुझे बस "lib" फ़ोल्डर का नाम बदलना था "libs" – twig

+0

आप ग्रहण के आदेश और निर्यात सुविधा का भी उपयोग कर सकते हैं – Bendlas

4

व्हील, जो डरावना था, लेकिन मैंने काम करने तक विभिन्न चीजों का एक टन आजमाया। इस सब के भीतर कहीं, यह हल हो गया। मेरी लाइब्रेरी प्रोजेक्ट में "lib" फ़ोल्डर में जोड़े गए कुछ जार हैं और बिल्ड पथ से जुड़े हुए हैं।

मैंने इस परिवर्तन लॉग नोट को पढ़ा है: http://tools.android.com/recent/dealingwithdependenciesinandroidprojects पुस्तकालयों और निर्भरताओं में परिवर्तनों के बारे में। मैंने यह देखा:

प्रोजेक्ट्स में स्रोत फ़ोल्डर्स, साथ ही लाइब्रेरी प्रोजेक्ट और जार फ़ाइल निर्भरताएं हैं। कोई अन्य project.properties में एक निर्भरता के रूप में पुस्तकालय परियोजनाओं जोड़ने से जरूरत सेटअप के साथ, एक परियोजना की classpath स्वचालित रूप से भरा हुआ है:

The content of the project’s libs/*.jar 
The output of the Library Projects. 
The Library Projects’ libs/*.jar 

किसी कारण के लिए, मेरे पुस्तकालय परियोजना के फ़ोल्डर "lib" नहीं "libs नामित किया गया था "। मैं बिना किसी समस्या के लगभग दो साल तक इसका उपयोग कर रहा हूं, लेकिन मैं आगे बढ़ गया और इसे "libs" में बदल दिया। मैंने फिर परियोजना को ताज़ा कर दिया, और "पुस्तकालय" ध्वज बंद कर दिया, और फिर यह सुनिश्चित करने के लिए कि यह परिवर्तन आया।

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

आखिरकार, मैंने देखा कि लाइब्रेरी प्रोजेक्ट के फ़ोल्डर में एक जार फ़ाइल थी, लेकिन इसका उपयोग नहीं किया जा रहा था। यह सिर्फ फ़ोल्डर में था। मैंने उस फाइल को हटा दिया।

तो वहां कहीं और फिर से काम करना शुरू कर दिया। मुझे कल्पना है कि असली फिक्स "libs" को "libs" में बदल रहा था, लेकिन मैं यह सुनिश्चित करना चाहता था कि अगर मैंने किसी अन्य डेवलपर्स को उनके दिल में भय और आतंक का सामना करने में मदद की है तो मैंने इसका उल्लेख किया है। सौभाग्य!

1

@kargi

एक नियम के रूप में, मुझे लगता है कि समाधान here और here एक बहुत बुरा व्यवहार है। मेवेन ने बहुत समय पहले इस प्रीस्टोस्टेस लिब फ़ोल्डर व्यवसाय को हल किया था, लेकिन मैवेन एंड्रॉइड का निर्माण करने में बहुत ही कुशल नहीं है, इसलिए मैं ग्रहण निर्यात सुविधा का उपयोग करने की सलाह दूंगा, क्योंकि मैं here का वर्णन करता हूं।