Кинжал не может создать граф объектов, хотя он может создать точечный файл
Я борюсь с настройкой Dagger (1.0.1) в существующем приложении. Он был настроен на использование ProGuard, но я отключил его для этого теста с-dontobfuscate
.
Когда я включаю dagger-compiler, он может успешно сгенерировать файл точек с графом зависимостей, но когда я удаляю компилятор и собираю приложение в режиме Release, он вылетает при запуске, жалуясь, что не может создать граф объектов.
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.corp.myapp/com.corp.myapp.ui.activity.MainActivity}:
java.lang.IllegalStateException: Errors creating object graph:
No injectable members on com.corp.myapp.core.services.ConnectionMonitor. Do
you want to add an injectable constructor? required by
com.corp.myapp.core.services.ConnectionMonitor
com.corp.myapp.ui.activity.MyAppBaseActivity.connectionManager
No injectable members on com.corp.myapp.ui.crouton.CroutonManager. Do you want
to add an injectable constructor? required by
com.corp.myapp.ui.crouton.CroutonManager
com.corp.myapp.ui.activity.MyAppBaseActivity.croutonManager
No injectable members on com.corp.core.assembler.ResourceAssembler. Do you want
to add an injectable constructor? required by
com.corp.core.assembler.ResourceAssembler
com.corp.myapp.ui.activity.MyAppBaseActivity.resourceAssembler
понятноMyAppBaseActivity
и это зависимости сCroutonManager
или жеConnectionMonitor
отображается в сгенерированном файле точек, поэтому в соответствии сэтот комментарий Я ожидал, что это сработает. AFAIK, если было что-то не так, это должно быть обнаружено сборкой с поддержкой компилятора, которую я использовал для создания файла точек.
ОБНОВИТЬ:
Я ранее заявил, что
В режиме отладки никогда не выходит из строя
но это не совсем верно после дальнейшего тестирования:отлаживать в режиме он не выходит из строя, потому что ProGuard отключен, тогда как вВыпуск Режим включен по умолчанию. Если я создаю приложение в режиме выпуска, нопропустить ProGuardЯ тоже не получаю ошибок, и приложение успешно запускается. Так что проблема определенно связана с моей конфигурацией ProGuard.