Внедренные объекты стали нулевыми после обновления до Roboguice 3
Я только что обновил наш проект, чтобы использовать Roboguice 3, и внезапно все внедренные объекты стали нулевыми, включая POJO, провайдеров, представления, ресурсы и т. Д. И я изо всех сил пытаюсь выяснить, почему.
Прежде всего, это файл сборки Gradle, пробовал и выключал Proguard, и это не имело никакого значения. Я полагаю, что в настоящее время мы используем Roboguice 3.0.1, но я попробовал 3.0 и все еще имел проблему.
compile ('org.roboguice:roboguice:3.+') {
exclude module: 'asm'
}
provided 'org.roboguice:roboblender:3.+
И у нас есть несколько пользовательских привязок в файле модуля, так что вот как я определяю это в соответствии с вики:
<meta-data
android:name="roboguice.modules"
android:value="com.some.CustomModule"/>
Просто для записи я также попытался указать это в классе Application следующим образом, и это не сработало:
RoboGuice.getOrCreateBaseApplicationInjector(
this,
RoboGuice.DEFAULT_STAGE,
RoboGuice.newDefaultRoboModule(this),
new CustomModule(this));
Вот и все по поводу настройки, мы ничего не меняли, и если я использую Roboguice 2, все работает.
Еще пара вещей, которые я тоже пробовал:
Также пробовал без Робоблендер и аннотации БДRoboGuice.setUseAnnotationDatabases(false);
это не имело значения.Ln.d("Test" + Strings.toString(0));
этот журнал распечатывает очень хорошо, так что я думаю, что настоящая библиотека упакована правильно.Вместо того, чтобы вводить поставщика POJO, я попытался использовать ручную инъекцию, как этоRoboGuice.getInjector(this).getInstance(SharedPreferencesHelper.class);
и это выдает ошибку оCould 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.
Странно то, что в классе SharedPreferencesHelper у нас есть открытый конструктор с@Inject
аннотированный, я думаю, как-то это не учитывается? Может быть, вся эта проблема связана с тем, что аннотация не рассматривается?Я уже несколько дней бьюсь головой об этом и буду очень признателен за любой вклад или еще что-нибудь, что можно попробовать.