Articles of Кинжал

Как ввести активность в адаптер с помощью dagger2

Android Studio 3.0 Canary 8 Я пытаюсь внедрить свою MainActivity в свой адаптер. Тем не менее, мое решение работает нормально, но я думаю, что его запах кода, а не правильный способ сделать это. Мой фрагмент адаптера выглядит так, но мне не нравится в том, что мне нужно MainActivity Activity в MainActivity : public class RecipeAdapter […]

Кинжал v2: ввести 2 разных области действия в один объект

У меня есть moduleA setup как один провайдер Singleton провайдера, ModuleB как поставщик объектов, связанных с пользователем Мой пользовательский фрагмент изображения будет использовать шину с системной шиной для отправки сообщения другим пользователям и использование объекта, связанного с пользователем. Проблема не может вставить другой класс scrope в один объект. Использовать метод component.getX отлично работает, но предпочтительнее […]

Android-приложение вылетает с выпуском сборки с использованием Proguard и Dagger

Я новичок в использовании Proguard и Dagger для приложений для Android, поэтому я был бы очень признателен, если бы кто-то мог дать мне несколько указателей. В приложение реализованы Proguard и Dagger. Когда приложение устанавливается через режим отладки (т. Е. Выталкивается из Eclipse), нет проблем с запуском приложения. Однако, когда я запускаю сборку релиза приложения, он […]

Кинжал 2 на Android. Различные способы хранения и доступа к компоненту @Singleton

Это N-й вопрос о том, как хранить компоненты Dagger 2 с компонентами @Singleton, срок службы которых должен равняться продолжительности жизни приложения. В приложениях Android, использующих Dagger 2, обычно есть как минимум один компонент, который является @Singleton, и должен длиться всю жизнь приложения: из-за этих требований он обычно инициализируется и хранится внутри пользовательского класса Application. Поскольку […]

Нет файлов сгенерированных Dagger2 для тестов JUnit

Новая версия AndroidStudio 1.1 представила поддержку модульного тестирования. Этот URL-адрес http://tools.android.com/tech-docs/unit-testing-support предоставляет пошаговую инструкцию по настройке IDE для запуска тестов JUnit для Android-источников. Этот плагин https://bitbucket.org/hvisser/android-apt используется для предоставления файлов сгенерированных Dagger2 в AS, и он работает нормально для обычного кода Android, но, к сожалению, нет никаких файлов Dagger2 для любого тестового класса JUnit. Я […]

Dagger2: ошибка, когда два компонента имеют одну и ту же сигнатуру инъекционного метода

У меня есть этот компонент: @Singleton @Component(modules = OauthModule.class) public interface OauthComponent { void inject(LoginActivity a); } И модуль: @Module public class OauthModule { @Provides @Singleton Oauth2Service provideOauth2Service() { return new Oauth2StaticService(); } } И этот другой компонент: @Singleton @Component(modules = LoggedUserModule.class) public interface LoggedUserComponent { void inject(LoginActivity a); } И я получаю эту ошибку: […]

Самый простой способ создать синглтон с кинжалом 2?

Нужно ли мне настраивать модули, провайдеры и интерфейсы (компоненты)? Похоже, что немного накладных расходов, чтобы иметь возможность вводить синглтон. Может ли кто-нибудь предоставить простой пример синглтона, используя Dagger 2? (Также показать, как можно установить свойства синглтона, такие как контекст, поэтому вам не нужно передавать его каждый раз, когда вы используете синглтон)

Не может быть предоставлен без конструктора @Inject или из метода @ Provides-annotated

Я использую Android Dagger2, но я получаю ошибку ниже. Мой класс AppModule: @Module public class AppModule { @Provides public DownloadFilePresenterImp provideDownloadfilePresenterImp(DownloadFileView downloadFileView) { return new DownloadFilePresenterImp(downloadFileView); } } Мой интерфейс AppComponent: @Singleton @Component(modules = AppModule.class) public interface AppComponent { void inject(DownloadFileView target); } Мой класс DaggerInject public class DaggerInjector { private static AppComponent mAppComponent = […]

Кинжал 2: предоставить один и тот же экземпляр между несколькими компонентами с одинаковой областью действия на разных библиотечных модулях

У меня есть базовая Android-библиотека, в которой я определяю объявление CoreComponent с использованием области @Singleton для ввода экземпляров классов, предоставляемых CoreModule. @Singleton @Component(modules = {CoreModule.class}) public interface CoreComponent { void inject(SomeClass target); } @Module public class CodeModule { @Singleton @Provides CoreRepository provideCoreRepository() { return new CoreRepositoryImpl(); } } Я хотел бы получить доступ к тем […]

Dagger2 – null вместо введенного объекта

Для того, чтобы сделать вещи простыми, предположим, что я хочу ввести EmailValidator из валидаторов apache в свою деятельность: public class MainActivity extends FragmentActivity { @Inject EmailValidator emailValidator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } У меня есть класс MainModule: @Module public class MainModule { @Provides public EmailValidator providesEmailValidator() { return EmailValidator.getInstance(); } } […]