我在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添加到我的应用中
答案 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)
好像你正在使用职业守卫,需要排除一些课程。 确保排除了项目中使用的任何库。