2013-07-02 16 views
7

में अनपेक्षित टॉप-लेवल एक्सेप्शन को कैसे हल करें मेरे पास दो प्रोजेक्ट हैं जो समान सहायता फ़ाइल साझा करते हैं।एंड्रॉइड स्टूडियो

पहली परियोजना में, बिल्ड ग्रहण और एंड्रॉइड स्टूडियो में पूरा होने के लिए चलता है।

दूसरी परियोजना में, निर्माण ग्रहण में पूरा करने के लिए चलाता है, लेकिन एंड्रॉयड स्टूडियो में मैं देख रहा हूँ:

Error:[Tracker-PRO-Key] UNEXPECTED TOP-LEVEL EXCEPTION: 
Error:[Tracker-PRO-Key] com.android.dx.util.ExceptionWithContext 
Error:[Tracker-PRO-Key] at com.android.dx.util.ExceptionWithContext.withContext(ExceptionWithContext.java:46) 
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:344) 
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:134) 
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:87) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processClass(Main.java:487) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.access$400(Main.java:67) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398) 
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:135) 
Error:[Tracker-PRO-Key] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processOne(Main.java:422) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333) 
Error:[Tracker-PRO-Key] at com.android.dx.command.dexer.Main.run(Main.java:209) 
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
Error:[Tracker-PRO-Key] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
Error:[Tracker-PRO-Key] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
Error:[Tracker-PRO-Key] at java.lang.reflect.Method.invoke(Method.java:606) 
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:139) 
Error:[Tracker-PRO-Key] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:261) 
Error:[Tracker-PRO-Key] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121) 
Error:[Tracker-PRO-Key] Caused by: java.lang.NullPointerException 
Error:[Tracker-PRO-Key] at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:87) 
Error:[Tracker-PRO-Key] at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:75) 
Error:[Tracker-PRO-Key] at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:247) 
Error:[Tracker-PRO-Key] ... 22 more 
Error:[Tracker-PRO-Key] ...while processing <init> (Lcom/DynaZu/Tracker/Prokey/MainActivity;)V 
Error:[Tracker-PRO-Key] ...while processing /home/joel/workspace/Tracker-PRO-Key/out/production/Tracker-PRO-Key/com/DynaZu/Tracker/Prokey/MainActivity$1.class 
Error:[Tracker-PRO-Key] 1 error; aborting 

AIDL फ़ाइल अत्यंत सरल है:

package com.DynaZu.Tracker.Prokey; 
interface IProKEYComm { 
    long getLicenseInfo(); 
} 

कैसे समस्या निर्धारित करने के लिए ???? इसका क्या कारण है? मैं com.google.android.vending.licensing का उपयोग कर रहा हूँ। क्या यह संबंधित हो सकता है?
मैंने उन समस्याओं को देखा है जहां लाइब्रेरी को दो बार शामिल किया गया है (विभिन्न संस्करणों के साथ), लेकिन यह यहां समस्या नहीं प्रतीत होता है। किसी भी विचार की बहुत प्रशंसा की जाएगी!

+1

मुझे पता है कि यह गेम में थोड़ा देर हो चुकी है, लेकिन क्या आप जावा 7 का उपयोग कर रहे थे? यह जावा 6 के उपयोग को मजबूर करने के बाद मेरे लिए काम करना शुरू कर दिया। –

उत्तर

4

इस सटीक समस्या से लड़ने के महीनों के बाद, मुझे अंततः एक समाधान मिला जो मेरे लिए काम करता है। यह आपका मामला नहीं हो सकता है। सुनिश्चित करें कि, आप जिन वर्गों का उपयोग कर रहे हैं उनमें से कोई भी नहीं (आपके मामले में, शायद यह इंटरफ़ेस स्वयं है, क्योंकि मुझे कोई अन्य दिखाई नहीं देता है) निजी है। ग्रैडल इसे संभालने में सक्षम नहीं है और कक्षा के भीतर विधियों को नहीं ढूंढ सकता है। बस इसे सार्वजनिक में बदलें (नेस्टेड कक्षाओं के मामले में, आपको इसे डिफ़ॉल्ट बनाने के लिए केवल ध्वज को हटाने की आवश्यकता है), और आपको जाने के लिए अच्छा होना चाहिए।

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