2017-09-08 7 views
15

के स्रोत की पहचान करने में असमर्थ मुझे डेवलपर कंसोल में उपयोगकर्ताओं के रूप में मेरे एंड्रॉइड ऐप में बहुत क्रैश रिपोर्ट मिली है। मैं देखता हूं कि स्टैक ट्रेस है:java.lang.ClassNotFoundException BaseDexClassLoader

java.lang.RuntimeException: 

    at android.app.ActivityThread.handleReceiver (ActivityThread.java:2884) 

    at android.app.ActivityThread.-wrap14 (ActivityThread.java) 

    at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1565) 

    at android.os.Handler.dispatchMessage (Handler.java:111) 

    at android.os.Looper.loop (Looper.java:207) 

    at android.app.ActivityThread.main (ActivityThread.java:5728) 

    at java.lang.reflect.Method.invoke (Native Method) 

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:789) 

    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:679) 
Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass (ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass (ClassLoader.java:469) 
at android.app.ActivityThread.handleReceiver (ActivityThread.java:2879) 

मेरे ऐप के पैकेज नाम का कोई संदर्भ नहीं है। मैं अपने विकास के लिए ग्रहण का उपयोग कर रहा हूं। क्या यह मल्टीडेक्स से संबंधित है। इसे हल करने के लिए मुझे एंड्रॉइड स्टूडियो पर स्विच करने की ज़रूरत है। मैं स्टैक ट्रेस के पीछे मूल कारण को समझने में असमर्थ हूं ताकि मैं इसके लिए समाधान ढूंढ सकूं।

नोट: मैं गूगल सेवाओं खेलते है, आईएपी और OneSignal Sdk मेरे ऐप को जोड़ा गया

+1

कोई और इनपुट जो आप इस मुद्दे पर दे सकते हैं? क्या आप त्रुटि को पुन: उत्पन्न करने में सक्षम हैं? यह कैसे होता है? आदि – Smogen

+1

आपको एंड्रॉइड स्टूडियो का उपयोग करना चाहिए। – danny117

+1

आपके पास हमारे लिए कुछ संस्करण जानकारी होनी चाहिए .. – danny117

उत्तर

15

मैं व्यक्तिगत रूप से कहना है कि एंड्रॉयड स्टूडियो two.Android स्टूडियो से अधिक बढ़त है दिन-ब-दिन और अधिक लोकप्रिय होता जा रहा है एंड्रॉइड विकास समुदाय और ओपन सोर्स समुदाय के बीच भी। Android Studio or Eclipse?

पढ़ें Migrate to Android Studio

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

Logcat विभिन्न dex-based ClassLoader कार्यान्वयन के बीच आम कार्यक्षमता के लिए

Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 

BaseDexClassLoader बेस वर्ग फेंकता।

आदेश में एक MultiDex विन्यास का उपयोग करने के अपने ऐप्स प्रोजेक्ट को कॉन्फ़िगर करने के लिए, आपको पर कम से कम Android संस्करण है कि आपकी ऐप का समर्थन करता है निर्भर करता है, निम्न संशोधन करने चाहिए।

, अपने build.gradlemodule-level फाइल करने के लिए multiDexEnabled true सेट के रूप में नीचे दिखाया गया है:

android { 
    compileSdkVersion // 
    buildToolsVersion // 

    defaultConfig { 
     ... 
     minSdkVersion 14 
     targetSdkVersion // 
     ... 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 
    ... 
} 

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 

आप देख सकते हैं DexIndexOverflowException

+2

आज इसे आजमाएगा और आपको यह बताएगा कि यह कैसा चल रहा है – Sandeep

1

ऐसा लगता है कि आप प्रो गार्ड का उपयोग कर रहे हैं और कुछ कक्षाओं को बाहर करने की आवश्यकता है। सुनिश्चित करें कि आपने अपनी प्रोजेक्ट में उपयोग की गई किसी भी लाइब्रेरी को बाहर रखा है।

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