无法识别java.lang.ClassNotFoundException的BaseDexClassLoader的来源

我在开发者控制台中看到我的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来解决这个问题吗? 我无法理解堆栈跟踪背后的基本原因,所以我可以find一个解决scheme。

注:我有谷歌播放服务,IAP和OneSignal Sdk添加到我的应用程序

Solutions Collecting From Web of "无法识别java.lang.ClassNotFoundException的BaseDexClassLoader的来源"

我个人认为,Android Studio有两个优势.Android工作室在Android开发社区和开源社区中日益stream行起来。 Android Studio或Eclipse?

阅读迁移到Android Studio

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

Logcat抛出

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

BaseDexClassLoader基类,用于各种dex-based ClassLoader实现之间的通用function。

为了configuration您的应用程序项目以使用MultiDexconfiguration,您必须进行以下修改,具体取决于您的应用程序支持的最低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

看来你正在使用职业警卫,需要排除一些类。 确保你已经排除了你的项目中使用的任何库。