web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:dalvik.system.BaseDexClassLoader.findClass

このエラーレポートは、GooglePlayデベロッパーコンソールで継続的に表示されます。 MultiDexエラーのようです。

Java.lang.RuntimeException: 
  at Android.app.LoadedApk.makeApplication(LoadedApk.Java:516)
  at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4514)
  at Android.app.ActivityThread.access$1500(ActivityThread.Java:151)
  at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1381)
  at Android.os.Handler.dispatchMessage(Handler.Java:110)
  at Android.os.Looper.loop(Looper.Java:193)
  at Android.app.ActivityThread.main(ActivityThread.Java:5299)
  at Java.lang.reflect.Method.invokeNative(Native Method:0)
  at Java.lang.reflect.Method.invoke(Method.Java:515)
  at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:829)
  at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:645)
  at dalvik.system.NativeStart.main(Native Method:0)

Caused by: Java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:497)
  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:457)
  at Android.app.Instrumentation.newApplication(Instrumentation.Java:975)
  at Android.app.LoadedApk.makeApplication(LoadedApk.Java:511)

私はすでにこれをgradle.buildに追加しました:

defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...

// Enabling multidex support.
multiDexEnabled true
}

dependencies {
  compile 'com.Android.support:multidex:1.0.0'
}
 @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(newBase);
        try {
            MultiDex.install(this);
        }catch (RuntimeException e){
            e.printStackTrace();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

Android 4.4,5.0,5.1、6.0でもこのエラーが発生します。助けてください!!

16
Manpreet Patil

AndroidにはJava.lang.ClassNotFoundExceptionの複数のバリエーションがあり、それらのほとんどは、間違ったProguard構成、IDEビルド時にデバイスの以前に起動されたインスタンスを正しく閉じないなどが原因です。

詳細については、 BaseDexClassLoaderでの予期しないクラッシュ に従ってください。

1

依存関係の競合が原因である可能性があります(同じクラスが2つのライブラリに存在する可能性があります)。したがって、依存関係でBaseDexClassLoaderクラスを検索してください。

0
Artem Kobelev