草庐IT

AndroidAnnotations 和 Dagger 2

全部标签

android - Transfuse 与 Dagger 相比如何?

我正在尝试决定是使用Transfuse还是Dagger进行Android依赖项注入(inject)。我从未使用过Transfuse,并且对Dagger有基本的了解。非常感谢。 最佳答案 首先,我是Transfuse的主要作者因此这个答案可能有点偏向那个方向。Transfuse和Dagger都以类似的方式处理Android的依赖注入(inject)/控制反转。两者都在编译时通过JSR269使用注释处理生成支持DI/IOC功能的代码。这使他们能够避免通常与非AndroidJava中发现的DI容器相关的昂贵的基于运行时反射的分析。不谈细节

android - dagger2 注入(inject)不起作用 - SharedPreferences

我正在尝试使用Dagger2进行依赖注入(inject).它在构建阶段给出错误,并说无法注入(inject)SharedPreference实例。这是我的模块和组件。应用模块@ModulepublicclassApplicationModule{privateApplicationapp;privateStringPREF_NAME="prefs";publicApplicationModule(Applicationapp){this.app=app;}@Singleton@ProvidespublicPicassogetPicasso(){returnnewPicasso.Buil

android - Dagger2 dagger.android.* 类不存在

我在instructionsfromtheofficialdocs之后将Dagger2添加到我的Android应用程序中.我以前使用过Dagger和Dagger2,Google似乎已经根据以下引述修改了Android的实现;Theclassesindagger.androidofferoneapproachtosimplifythispattern....Next,makeyourApplicationimplementHasDispatchingActivityInjectorand@InjectaDispatchingAndroidInjectortoreturnfromtheac

android - 了解 Dagger 2 中的作用域

我在Dagger2中遇到与范围相关的错误,我正在尝试了解如何解决它。我有一个显示公司的CompaniesActivity。当用户选择一个项目时,所选公司的员工将显示在EmployeesActivity中。当用户选择一名员工时,她的详细信息显示在EmployeeDetailActivity中。classCompany{Listemployees;}CompaniesViewModel类包含公司和所选公司(或null):classCompaniesViewModel{Listcompanies;Companyselected;}CompaniesActivity引用了CompaniesVi

android - Dagger2 - "is not a framework type."错误

我正在尝试使用@ContributesAndroidInjector在我的Dagger模块中提供一个类,但我看到错误:[ClassName]不是框架类型。有谁知道“框架类型”是什么,在什么情况下类不是一个? 最佳答案 在我的例子中,错误发生在使用dagger2.20时。这个问题让我抓狂,所以我举了一个干净的例子,一切正常,直到我将版本升级到2.20。然后我得到了“不是框架类型”的错误。我将版本更改为2.19,一切又恢复正常了。 关于android-Dagger2-"isnotaframe

java - AndroidAnnotations 如何在 onCreate 之后添加初始化代码

如果我将Activity定义为:@EActivity(R.layout.activity_login)publicclassLoginActivityextendsActivity这将为我创建onCreate()方法,但我有额外的初始化代码,我想在onCreate方法之后执行,我应该怎么做?我可以创建自己的onCreate方法并使用空的@EActivity,但是有更好的方法吗? 最佳答案 使用@AfterViews用于定义您自己的初始化代码的注释:@AfterViewsprotectedvoidinit(){//yourcustom

java - Dagger2 "cannot be provided without an @Provides-annotated method."问题

我正在尝试使用Dagger2设置一个新项目,我以前使用过Dagger2,但现在我正在尝试自己从头开始设置它。我正在从我参与的Kotlin项目中获取示例,但无法像现在在Kotlin中一样为Java设置它(或者我可能遗漏了一些东西)。它只是一个组件、一个模块和一个应用程序。组件@Singleton@Component(modules={MainAppModule.class})publicinterfaceAppComponentextendsAndroidInjector{@Component.BuilderabstractclassBuilderimplementsAndroidInj

android - MVVM Dagger2 组件中存在具有匹配键的绑定(bind)

我正在使用以下谷歌示例项目:https://github.com/googlesamples/android-architecture-components作为我的新项目的引用,并且在尝试向该项目添加第二个Activity时遇到困难。这是我在编译时遇到的错误Error:(22,8)error:[dagger.android.AndroidInjector.inject(T)]com.apps.myapp.ui.common.MainActivitycannotbeprovidedwithoutan@Injectconstructororfroman@Provides-annotated

java - Dagger 2 : no injector factory bound for fragment

我正在尝试将我正在构建的项目转换为将dagger-androidAPI用于DI框架,但在尝试使用@ContributesAnroidInjector注入(inject)fragment时,我遇到了IllegalArgumentException的死胡同。相关模块和组件如下:ApplicationComponent.java@Singleton@Component(modules={AndroidSupportInjectionModule.class,ApplicationModule.class,ActivityBindingModule.class,DataManagerModul

android - 如何使用 dagger2 将 Activity 注入(inject) Adapter

AndroidStudio3.0金丝雀8我正在尝试将我的MainActivity注入(inject)我的适配器。然而,我的解决方案工作正常,但我认为它有代码味道,而不是正确的方法。我的适配器fragment看起来像这样,但我不喜欢的是我必须将Activity转换为MainActivity:publicclassRecipeAdapterextendsRecyclerView.Adapter{privateListrecipeList=Collections.emptyList();privateMapviewHolderFactories;privateMainActivitymain