Objetos injetados se tornaram nulos após a atualização para o Roboguice 3
Acabei de atualizar nosso projeto para usar o Roboguice 3 e, de repente, todos os objetos injetados se tornaram nulos, incluindo POJO, provedores, visualizações, recursos etc. E estou lutando para descobrir o porquê.
Primeiro de tudo, existe o arquivo de compilação gradle, que é ligado e desligado o Proguard e isso não faz diferença. Acredito que atualmente estamos usando o Roboguice 3.0.1, mas tentei o 3.0 e ainda tinha o problema.
compile ('org.roboguice:roboguice:3.+') {
exclude module: 'asm'
}
provided 'org.roboguice:roboblender:3.+
E nós temos algumas ligações personalizadas em um arquivo Module, então aqui está como eu a especifico de acordo com o wiki:
<meta-data
android:name="roboguice.modules"
android:value="com.some.CustomModule"/>
Apenas para o registro, eu também tentei especificá-lo na classe Application como esta e não funcionou:
RoboGuice.getOrCreateBaseApplicationInjector(
this,
RoboGuice.DEFAULT_STAGE,
RoboGuice.newDefaultRoboModule(this),
new CustomModule(this));
Isso é tudo para a instalação, não mudamos nada e, se eu usar o Roboguice 2, tudo funcionará.
Algumas outras coisas que eu também tentei:
Também tentei sem Roboblender e anotação dbRoboGuice.setUseAnnotationDatabases(false);
não fez diferença.Ln.d("Test" + Strings.toString(0));
esses logs são impressos muito bem, então acho que a biblioteca real está empacotada corretamente.Em vez de injetar um provedor de um POJO, tentei usar injeção manual como estaRoboGuice.getInjector(this).getInstance(SharedPreferencesHelper.class);
e lança o erro sobreCould not find a suitable constructor in some.path.SharedPreferencesHelper. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
O estranho é que, na classe SharedPreferencesHelper, temos um construtor público com@Inject
anotado, acho que de alguma forma não é levado em consideração? Talvez todo esse problema seja devido à anotação não estar sendo considerada?Eu tenho batido minha cabeça contra isso por alguns dias agora e realmente aprecio qualquer entrada ou mais coisas para tentar.