Не удалось идентифицировать источник 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, чтобы решить эту проблему. Я не могу понять основную причину трассировки стека, чтобы я мог найти для нее решение.
Примечание. У меня есть сервисы Google Play, IAP и OneSignal Sdk, добавленные в мое приложение.
Ответы
Ответ 1
Я бы сказал, что Android Studio имеет преимущество над две студии. Андроид становится все более популярным день ото дня среди сообщества разработчиков Android, а также сообщества с открытым исходным кодом. Android-студия или Eclipse?
Прочитайте Перейдите в Android Studio.
Миграция ваших проектов в Android Studio требует адаптации к новой структуры проекта, системы сборки и функциональности IDE. Если ты Миграция Android-проекта с Eclipse, Android Studio обеспечивает инструмент импорта, чтобы вы могли быстро переместить существующий код в Android Студийные проекты и файлы сборки Gradle.
Logcat Throws
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.
Ответ 2
Похоже, вы используете pro guard и должны исключать некоторые классы.
Убедитесь, что вы исключили какую-либо библиотеку, используемую в вашем проекте.