Не удалось идентифицировать источник 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 и должны исключать некоторые классы. Убедитесь, что вы исключили какую-либо библиотеку, используемую в вашем проекте.