При запуске приложения происходит сбой, и я получаю NoClassDefFoundError, выдаваемый Dagger 2.22.1
на некоторых устройствах, таких как Lenovo Coolpad
под управлением Android 6.0.1
и на некоторых устройствах под управлением других версий (не относится к pre-lollipop)
Но я могу успешно работать на некоторых устройствах like OnePlus 7
, Redmi note 6
, Moto One Power
с различными версиями Android OS
Я погуглил и нашел много возможных проблем, таких как
- Проблемы с Mutidex (которые правильно настроены в моем приложении)
2. Проблемы с защитой (я только пытаюсь запустить отладочную версию, которая не защищена)
- гораздо больше предложений (которые я пробовал, но не повезло)
Я застрял в этой проблеме на целый день, пытаясь выяснить причину
Примечание 1: Я получаю эту ошибку только для одного класса Mapper.kt
, который расширяет com.google.common.base.Converted
, который является рабочим файлом в git develop
филиале
Примечание 2: При анализе .apk я обнаружил, что сгенерировано 4 .dex
файла, включая основной .dex (classes.dex
, classes2.dex
, classes3.dex
, classes4.dex
)
Они в порядке
classes.dex
classes2.dex
classes3.dex
classes4.dex
(эта папка находится в папке res
, что я не уверен, что это правильно), потому что в ветке git develop
она не находится под res folder
Вход
07-06 20:57:00.140 17098-17098/in.somepackage.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: in.somepackage.debug, PID: 17098
java.lang.NoClassDefFoundError: in.somepakage._offline._di.Mapper
at in.somepakage._di.DaggerApp_Component.getMapper(DaggerApp_Component.java:1145)
at in.somepakage._di.DaggerApp_Component.server(DaggerApp_Component.java:1931)
at in.somepakage._di.DaggerApp_Component.getSyncDirtyTransaction(DaggerApp_Component.java:1166)
at in.somepakage._di.DaggerApp_Component.getSyncDirtyTransactions(DaggerApp_Component.java:1170)
at in.somepakage._di.DaggerApp_Component.getSignout(DaggerApp_Component.java:1188)
at in.somepakage._di.DaggerApp_Component.getNotificationWorker(DaggerApp_Component.java:1228)
at in.somepakage._di.DaggerApp_Component.injectApp(DaggerApp_Component.java:2132)
at in.somepakage._di.DaggerApp_Component.inject(DaggerApp_Component.java:1946)
at in.somepakage.App.setupDependencyInjection(App.java:479)
at in.somepakage.App.onCreate(App.java:180)