Adaga não pode criar gráfico de objeto, embora possa produzir arquivo de ponto
Eu estou lutando com a configuração do Dagger (1.0.1), em um aplicativo existente. Ele foi configurado para usar o ProGuard, mas eu o desativei para este teste com-dontobfuscate
.
Quando habilito o dagger-compilador, ele é capaz de gerar com sucesso um arquivo de ponto com o gráfico de dependências, mas quando eu removo o compilador e construo o aplicativo no modo Release ele falha durante a inicialização, reclamando que não é possível criar o gráfico do objeto.
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
EntendoMyAppBaseActivity
e é dependências comCroutonManager
ouConnectionMonitor
sendo exibido no arquivo de ponto gerado, de acordo comeste comentário Eu esperava que isso funcionasse. AFAIK se houvesse algo errado, deveria ser detectado pela compilação ativada pelo compilador que usei para gerar o arquivo de ponto.
ATUALIZAR:
Eu afirmei anteriormente que
No modo de depuração nunca falha
mas não é verdade depois de mais testes:Depurar modo não falha porque ProGuard está desativado, enquanto emLançamento modo está habilitado por padrão. Se eu criar o aplicativo no modo Release, masignorar ProGuard, Também não recebo os erros e o aplicativo é iniciado com êxito. Então, o problema está definitivamente relacionado à minha configuração ProGuard.