java - 安卓 ClassNotFoundException : Didn't find class on path

标签 java android

这是我在启动应用程序时收到的异常消息。

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

最佳答案

使用 multi dex 解决了我的问题:

android {
defaultConfig {

    // Enabling multidex support.
    multiDexEnabled true
}
...
}
dependencies 
{
compile 'com.android.support:multidex:1.0.0'
}

如果您不覆盖 Application 类,请编辑您的 list 文件以在标记中设置 android:name,如下所示:

<application
        android:name="android.support.multidex.MultiDexApplication" >
    ...
</application>

如果您确实覆盖了 Application 类,请将其更改为扩展 MultiDexApplication(如果可能),如下所示:

public class MyApplication extends MultiDexApplication

或者,如果您覆盖了 Application 类但无法更改基类,那么您可以覆盖 attachBaseContext() 方法并调用 MultiDex.install(this) 以启用 multidex:

public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
 super.attachBaseContext(base);
 MultiDex.install(this);
}
}

关于java - 安卓 ClassNotFoundException : Didn't find class on path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042107/

相关文章:

java - coldFusion jvm垃圾收集不是

java - 执行 OWL API 时出错

java - 如何在模块化java项目中使用嵌入式tomcat

android - 根据 fragment 中的流程关闭 Activity 中的抽屉导航?

java - 链接到另一个java类

java - Java中如何测试一个对象是原始类型还是原始类型数组?

android - 包文件错误 : with Ndk HelloJni Sample 中的 native ABI 不匹配

android - 如何在接口(interface)类中初始化 TypeFace

android - 默认情况下在 "allow"中设置 "Asus auto start manager"权限

Android flavor 测试 .R 文件