Не удалось найти ошибку class/NoClassDefFound на Android 4.3/pre L

У меня есть приложение для Android, которое отлично работает на устройствах Android L+. Однако, когда я пытаюсь запустить его для устройств до L, я, кажется, получаю исключение для Could not Find Class или NoClassDefFoundError, и эти классы, похоже, из другого проекта, от которого зависит мой проект.

Я попробовал java.lang.NoClassDefFoundError на устройствах Android с KitKat и NoClassDefFoundError в 4.4 kitkat, но не в 5.0 Lollipop - Не удалось найти класс , который рекомендовал мне отключить multidex в build.gradle, но он не нашел проблему, и я начал получать transformClasseswithDexforDebug ошибки, перечисленные в НЕОЖИДАННОЕ ИСКЛЮЧЕНИЕ ВЕРХНЕГО УРОВНЯ: com.android.dex.DexException: Multiple dex файлы определяют, что порекомендовало мне снова включить multiDex.

Вот пример трассировки стека ошибки:

01-28 17:09:21.214 15125-15125/<app> I/dalvikvm: Could not find method <XXX>, referenced from method <YYY>.findZygotePid 01-28 17:09:21.190 15125-15125/<app> E/dalvikvm: Could not find class '<ZZZ>', referenced from method <AAA>.broadcast 01-28 17:09:21.229 15125-15125/<AAA> E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoClassDefFoundError: <Method from a dependent project's class>

И в моем основном проекте Android, и в зависимом модуле включена поддержка multidex, а зависимости настроены на компиляцию com.android.support:multidex:1.0.0. Может ли кто-нибудь предоставить некоторые данные о том, как мне исправить исключение, выдаваемое на устройствах pre L? Любые материалы будут оценены.

Я также пробовал чистую сборку и перестройку проекта, но это мне не помогает. Спасибо.

ОБНОВЛЕНИЕ: пример кода

class Dummy { 
Dummy(<params>) {
        initialize variables;
    }

}

и это вызывается как new Dummy(<params>), где выдается исключение NoClassDefFound package_name.Dummy.


comment
в леденце есть несколько API, для которых требуется, чтобы минимальная версия SDK была леденцом. Таким образом, эти классы не будут доступны в устройствах до леденцов, поэтому вы получите эту ошибку.   -  person Vivek Mishra    schedule 28.01.2016
comment
Это просто задача таймера, ссылка на которую не найдена, а не какой-то конкретный API Android, что приводит к исключению.   -  person learn_develop    schedule 28.01.2016
comment
можешь еще код выложить   -  person Vivek Mishra    schedule 28.01.2016
comment
добавил некоторый фиктивный код для справки.   -  person learn_develop    schedule 28.01.2016


Ответы (1)


Устранена вышеуказанная проблема, заставив мою базовую активность расширить MultiDexApplication (не Application), и теперь приложение не падает. Кроме того, изменены build.gradle и AndroidManifest.xml, чтобы установить minSdkVersion на 18.

person learn_develop    schedule 09.02.2016
comment
чтоооо?! ты шутишь?! как это может быть активностью?! - person Siavash Abdoli; 02.12.2020