Я только что обновил наш проект, чтобы использовать Roboguice 3, и внезапно все введенные объекты стали нулевыми, включая POJO, Providers, Views, Resources и т. Д. И я пытаясь понять, почему.Введенные объекты стали нулевыми после обновления до Roboguice 3
Прежде всего, есть файл построения градиента, он попытался включить и выключить 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, все работает.
Пару других вещей, которые я также пытался:
- Также попытался без Roboblender и аннотаций дб
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
аннотированным, я думаю, как-то это не принимаются во внимание? Может быть, вся эта проблема связана с тем, что аннотация не рассматривается?
Я уже несколько дней стучал головой об этом, и был бы очень признателен за любые материалы или все, что можно было бы попробовать.
Выше, похоже, работает для проектов со сборными ароматами. [RoboGuice wiki] (https://github.com/roboguice/roboguice/wiki/RoboBlender-wiki) устарел. – Diederik