मैं एंड्रॉइड ऐप चलाने में एक समस्या को हल करने की कोशिश कर रहा हूं जिसमें 65k से अधिक विधियां हैं।
मैंने मल्टीडेक्स समर्थन के बारे में Google दस्तावेज़ों का पालन किया है, हालांकि मैं अभी भी इसे सफलतापूर्वक चलाने में असमर्थ हूं। ऐसा लगता है कि समस्या केवल 21 से कम एसडीके पर दिखाई देती है, क्योंकि जब मैं minSdkVersion 21
निर्दिष्ट करता हूं, तो यह अच्छी तरह से काम करता है, हालांकि एक बार जब मैं इसे minSdkVersion 15
पर सेट करता हूं, तो मुझे निम्नलिखित अपवाद मिल रहा है। AndroidManifest मेंएंड्रॉइड मल्टीडेक्स रनटाइम अपवाद
बनाया वर्ग कहा जाता MyApplication कि आवेदन प्रदान करता है और निर्दिष्ट यह:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate application custom.package.name.MyApplication: java.lang.ClassNotFoundException: Didn't find class "custom.package.name.MyApplication" on path: DexPathList[[zip file "/data/app/custom.package.name-2/base.apk"],nativeLibraryDirectories=[/data/app/custom.package.name-2/lib/arm, /vendor/lib, /system/lib]] at android.app.LoadedApk.makeApplication(LoadedApk.java:578) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.ClassNotFoundException: Didn't find class "custom.package.name.MyApplication" on path: DexPathList[[zip file "/data/app/custom.package.name-2/base.apk"],nativeLibraryDirectories=[/data/app/custom.package.name-2/lib/arm, /vendor/lib, /system/lib]] 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.Instrumentation.newApplication(Instrumentation.java:981) at android.app.LoadedApk.makeApplication(LoadedApk.java:573) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4680) at android.app.ActivityThread.-wrap1(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Suppressed: java.io.IOException: Failed to open dex files from /data/app/custom.package.name-2/base.apk at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:295) at dalvik.system.DexFile.<init>(DexFile.java:80) at dalvik.system.DexFile.<init>(DexFile.java:59) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:279) at dalvik.system.DexPathList.makePathElements(DexPathList.java:248) at dalvik.system.DexPathList.<init>(DexPathList.java:120) at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48) at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:65) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58) at android.app.LoadedApk.getClassLoader(LoadedApk.java:376) at android.app.LoadedApk.makeApplication(LoadedApk.java:568) ... 9 more Suppressed: java.lang.ClassNotFoundException: custom.package.name.MyApplication at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 12 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
से पहले Logcat घातक अपवाद
W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=smp,div,atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=krait --instruction-set-features=default --dex-file=/data/app/custom.package.name-2/base.apk --oat-file=/data/dalvik-cache/arm/[email protected]@[email protected]@classes.dex) because non-0 exit status W/art: Failure to verify dex file '/data/app/ccustom.package.name-2-2/base.apk': Invalid method name: '[email protected]7#0' W/System: ClassLoader referenced unknown path: /data/app/custom.package.name-2-2/lib/arm
यहाँ मैं अब तक क्या किया है है .xml फ़ाइल
build.gradle में फ़ाइल
compile 'com.android.support:multidex:1.0.1'
सक्षम multidex build.gradle निर्भरता जोड़ा
multiDexEnabled true
MyApplication कक्षा में multidex सक्षम
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
किसी भी मदद के लिए अग्रिम धन्यवाद!
आप MultiDexApplication फैली उपयोग करने की कोशिश की है, के बजाय आवेदन फैली ? –
हां, मैंने कोशिश की है, लेकिन अभी भी एक ही समस्या – jpact