无法识别java.lang.ClassNotFoundException BaseDexClassLoader的源代码

时间:2017-09-08 03:19:20

标签: java android

我在Android应用程序中收到了很多崩溃报告,正如我在开发者控制台中看到的那样。我看到的堆栈跟踪是:

java.lang.RuntimeException:

  at android.app.ActivityThread.handleReceiver (ActivityThread.java:2884)

  at android.app.ActivityThread.-wrap14 (ActivityThread.java)

  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1565)

  at android.os.Handler.dispatchMessage (Handler.java:111)

  at android.os.Looper.loop (Looper.java:207)

  at android.app.ActivityThread.main (ActivityThread.java:5728)

  at java.lang.reflect.Method.invoke (Native Method)

  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:789)

  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:679)
Caused by: java.lang.ClassNotFoundException:
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.ActivityThread.handleReceiver (ActivityThread.java:2879)

没有引用我的应用程序包名称。我正在使用Eclipse进行开发。它是与multidex相关的东西吗?我是否需要切换到Android Studio才能解决此问题。我无法理解堆栈跟踪背后的基本原因,以便我可以为它寻找解决方案。

注意:我已将Google Play服务,IAP和OneSignal Sdk添加到我的应用中

2 个答案:

答案 0 :(得分:13)

  

我个人会说Android Studio有优势   二.Android工作室日益受到欢迎   android开发社区以及开源社区。的 Android Studio or Eclipse?

阅读 Migrate to Android Studio

  

将项目迁移到Android Studio需要适应新的项目   项目结构,构建系统和IDE功能。如果你是   从Eclipse迁移Android项目,Android Studio提供了一个   导入工具,以便您可以快速将现有代码移动到Android中   Studio项目和基于Gradle的构建文件。

Logcat抛出

Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)

BaseDexClassLoader 各种 dex-based ClassLoader 实施之间常见功能的基类。

  

为了配置您的应用项目以使用MultiDex   配置,您必须进行以下修改,具体取决于   您的应用支持的最低Android版本。

multiDexEnabled true设置为 build.gradle module-level文件,如下所示:

    android {
    compileSdkVersion //
    buildToolsVersion //

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion //
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1' 
}

您可以查看 DexIndexOverflowException

答案 1 :(得分:1)

好像你正在使用职业守卫,需要排除一些课程。 确保排除了项目中使用的任何库。