Android ClassNotFoundException: Didn't find class on path

Viewed 22704

Here's the exception message that I get when I launch the app.

FATAL EXCEPTION: main Process: net.johnhany.opencv3jniPID: 10721 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{net.johnhany.opencv3jni/net.johnhany.opencv3jni.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "net.johnhany.opencv3jni.MainActivity" on path: DexPathList[[zip file "/data/app/net.johnhany.opencv3jni-1/base.apk"],nativeLibraryDirectories=[/data/app/net.johnhany.opencv3jni-1lib/arm, /vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivityActivityThread.java:2322) at android.app.ActivityThread.handleLaunchActivityActivityThread.java:2474) at android.app.ActivityThread.ess$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessageActivityThread.java:1359) at android.os.Handler.sage(Handler.java:102) at android.os.Looper.loopLooper.java:155) at android.app.ActivityThread.mainActivityThread.java:5696) at java.lang.reflect.Method.invokeNative Method) at java.lang.reflect.Method.invokeMethod.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:1028) at com.android.internal.os.Init.main(ZygoteInit.java:823) Caused by: java.lang.ClassNotFoundException: Didn't find class "net.johnhany.opencv3jni.MainActivity" on path: DexPathList[[zip file "/data/app/net.johnhany.opencv3jni-1/base.apk"],nativeLibraryDirectories=[/data/app/net.johnhany.opencv3jni-1/lib/arm/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClassBaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClassClassLoader.java:511) at java.lang.ClassLoader.loadClassClassLoader.java:469) at android.app.Instrumentation.newActivityInstrumentation.java:1083) at android.app.ActivityThread.performLaunchActivityActivityThread.java:2312) at android.app.ActivityThread.handleLaunchActivityActivityThread.java:2474)  at android.app.ActivityThread.ess$800(ActivityThread.java:144)  at android.app.ActivityThread$H.handleMessageActivityThread.java:1359)  at android.os.Handler.sage(Handler.java:102)  at android.os.Looper.loopLooper.java:155)  at android.app.ActivityThread.mainActivityThread.java:5696)  at java.lang.reflect.Method.invokeNative Method)  at java.lang.reflect.Method.invokeMethod.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:1028)  at com.android.internal.os.Init.main(ZygoteInit.java:823)  Suppressed: java.lang.ClassNotFoundException: net.johnhany.opencv3jni.ty at java.lang.Class.classForNameNative Method) at java.lang.BootClassLoader.Class(ClassLoader.java:781) at java.lang.BootClassLoader.Class(ClassLoader.java:841) at java.lang.ClassLoader.loadClassClassLoader.java:504) ... 13 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 05-18 16:01:27.927 645-1928/? E/ActivityManager: App crashedProcess: net.johnhany.opencv3jni

8 Answers

Make sure this Diable preDexLibraries

In your app module .gradle file

android {
 dexOptions
            {
                preDexLibraries false
            }

}

In my case, I removed apply plugin: 'kotlin-android' from module level gradle file by mistake.

After putting it again, it starts working again.

If you are using AndroidX, this is the MultiDex lib

implementation "androidx.multidex:multidex:2.0.1"

also

defaultConfig {

        multiDexEnabled true
}

and make your application class inherent from MultiDexApplication

Related