Затруднявам се с настройката на Dagger (1.0.1) в съществуващо приложение. Беше конфигуриран да използва ProGuard, но аз го деактивирах за този тест с -dontobfuscate
.
Когато активирам компилатор на кама, той може успешно да генерира точков файл с графиката на зависимостите, но когато премахна компилатора и изградя приложението в режим на издаване, то се срива по време на стартиране, оплаквайки се, че не може да създаде графиката на обекта.
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, ако има нещо нередно, то трябва да бъде открито от активираната от компилатора компилация, която използвах за генериране на dot файла.
АКТУАЛИЗАЦИЯ:
Преди това го казах
В режим на отстраняване на грешки никога не се проваля
но всъщност не е вярно след допълнително тестване: В режим Debug не се проваля, защото ProGuard е деактивиран, докато в режим Release е активиран по подразбиране. Ако създам приложението в режим Release, но пропусна ProGuard, също не получавам грешките и приложението стартира успешно. Така че проблемът определено е свързан с моята конфигурация на ProGuard.