#android #roboguice
#Android #roboguice
Вопрос:
Roboguice — это такой аккуратный маленький инструмент для приведения в порядок шаблонного кода Android view.
Мне понравилось использовать @InjectView
аннотацию, чтобы мне не приходилось инициализировать каждое поле просмотра в методе onCreate() для моих действий, подобных этому:
@InjectView(R.id.title) TextView title;
В рамках радикальных изменений Google в проектах библиотек для ADT 14 (которые в целом являются долгожданным улучшением) поля идентификаторов в сгенерированных R-классах больше не являются окончательными.
Итак, теперь, когда вы хотите использовать Roboguice внутри библиотечных проектов, @InjectView
аннотации больше не компилируются, потому что аннотации обрабатываются во время компиляции и R.id.title
больше не являются окончательными.
Облом…
Кто-нибудь еще использует Roboguice и у кого есть творческий обходной путь?
Ответ №1:
Android Annotations поддерживает внедрение на основе имени ресурса с проверкой во время компиляции.
https://github.com/excilys/androidannotations/wiki/Library-projects
Комментарии:
1. Все еще раздражает поддержка рефакторинга, но, по крайней мере, будет сгенерирована ошибка во время компиляции!
Ответ №2:
Я думаю, вам лучше всего следить за этим сообщением об ошибке в roboguice, чтобы узнать, какое решение они предлагают: http://code.google.com/p/roboguice/issues/detail?id=139amp;sort=-id
Комментарии:
1. Я полагаю, что сейчас просто нет обходного пути. Неудачно.
Ответ №3:
Рекомендация RoboGuice заключается в замене ссылок на идентификаторы ссылками на ТЕГИ: http://code.google.com/p/roboguice/wiki/LibraryProjects
Комментарии:
1. Отмечено, хотя я бы счел это неприемлемо хрупким для потенциальных изменений при рефакторинге.
2. Согласен, любые проблемы будут устранены во время выполнения, в потребительском приложении. Тьфу.
3. Согласен, не стреляйте в messenger, я упоминал, что это была собственная рекомендация RoboGuice, верно? 🙂