2017-04-05 13 views
6

सैमसंग फोन के लिए विशेष रूप से गैलेक्सी एस 7 एज, जो हम कपड़ा क्रैश रिपोर्ट में देखा में इस अजीब अपवाद नहीं है:सैमसंग उपकरणों पर अजीब दुर्घटना

Fatal Exception: java.lang.RuntimeException: Unable to instantiate receiver com.someapp: java.lang.ClassNotFoundException: Didn't find class "com.someapp" on path: DexPathList[[zip file "/data/app/com.someapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.someapp-1/lib/arm, /system/fake-libs, /data/app/com.someapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]] 
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:3331) 
    at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6688) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 

Caused by java.lang.ClassNotFoundException: Didn't find class "com.someapp" on path: DexPathList[[zip file "/data/app/com.someapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.someapp-1/lib/arm, /system/fake-libs, /data/app/com.someapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]] 
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:380) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
    at android.app.ActivityThread.handleReceiver(ActivityThread.java:3326) 
    at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6688) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 

उपयोगकर्ताओं से प्रतिक्रिया के रूप में, इस त्रुटि केवल तब होता है जब अनुप्रयोग में है पृष्ठभूमि और इसके साथ बातचीत नहीं है, मुझे लगता है कि यह मुद्दा सैमसंग के डिवाइस रोम पृष्ठभूमि कार्यों को कम करने या उन्हें विशेष स्मृति में रखने की कोशिश करता है और हमारा ऐप तैयार नहीं होता है और ऐसा होता है।

बिंदु यह है कि अपवाद ऐप के किसी भी वर्ग को इंगित नहीं कर रहा है, इसलिए हम इस मुद्दे का पता लगा सकते हैं, अगर किसी को भी मदद करने से पहले इस समस्या का सामना करना पड़ा है!

+0

http://stackoverflow.com/questions/33313101/dexindexoverflowexception-only-when-running-tests –

+1

आप अपने एप्लिकेशन में multidex सक्षम था? – Redman

+0

हाँ, इसकी सक्षम है लेकिन इसमें मल्टीडेक्स के साथ कुछ भी नहीं है, कम से कम मुझे लगता है कि – MohammadReza

उत्तर

0

मेरे लिए यह .. अपने काम की कोशिश जहां मैं विभिन्न उपकरणों

पर एक ही समस्या है अपने निर्भरता को compile 'com.android.support:multidex:1.0.1' जोड़ें।

सुनिश्चित करें कि आपने defaultConfig

में multiDexEnabled true डाल तो Marshmallow से अपने आवेदन वर्ग

@Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 
0

में यह जोड़ने के लिए, Google नई सुविधा/Doze बुलाया मोड शुरू की है। सरकारी दस्तावेजों

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

आप इसे here पर विस्तार से पढ़ सकते हैं।

Nougat में, यह अधिक अनुकूलित किया गया है।

मेरा मानना ​​है कि समस्या वास्तव में Doze सुविधा है। मुझे नहीं पता कि इसे रोकने के लिए कोई रास्ता है या नहीं, लेकिन आप इसे मैन्युअल रूप से कर सकते हैं। आप और अधिक विस्तार के लिए here और here उल्लेख कर सकते हैं

+0

मुझे डर है कि यह मामला होगा, क्योंकि यह सैमसंग फोन पर होता है, खासकर एस 7 एज – MohammadReza

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