草庐IT

dagger-2

全部标签

android - 单例组件不能依赖作用域组件

在Android应用程序上使用Dagger2进行依赖注入(inject)时定义Dagger组件时出现此错误Error:(13,1)error:This@Singletoncomponentcannotdependonscopedcomponents:@Singletoncom.eaxample.app.DaggerAndroid.networkhandler.WebserviceComponent我的组件代码在这里:@Singleton@Component(modules={WebserviceModule.class},dependencies={ApplicationCompone

android - Dagger 在模块上找不到可注入(inject)成员

我正在使用Dagger用于在Android项目中进行依赖注入(inject),并且可以很好地编译和构建应用程序。对象图看起来是正确的并且可以工作,但是当我添加dagger-compiler作为依赖项以在编译时出错时,它会报告一些奇怪的错误:[ERROR]error:Nobindingforcom.squareup.tape.TaskQueuerequiredbycom.atami\.mgodroid.ui.NodeIndexListFragmentforcom.atami.mgodroid\.modules.OttoModule[ERROR]error:Nobindingforcom.

android - 在 Android 上使用 Dagger 2 进行延迟注入(inject)

我是Dagger2的新手。我有这种情况,我不想在我的应用程序中注入(inject)对象(在演示者中,在api中)我最初没有办法提供它。它是在我的应用程序的某个阶段进行身份验证后才创建的。来自文档http://google.github.io/dagger/我看到延迟加载可能是解决这个问题的一种方法,例如@InjectLazylazyGrinder;然后使用以下方法获取这样的值:lazyGrinder.get().grind();我的问题是:在此之后我可以安全地将对象换成新对象吗?还有其他推荐的方法吗?谢谢 最佳答案 这不适合Lazy

使用 Dagger 进行 Android 功能测试

我正在尝试使用Mockito&Dagger测试Activity.我已经能够在我的应用程序中向Activity注入(inject)依赖项,但是在测试Activity时,我无法向Activity注入(inject)模拟。我应该注入(inject)Activity来测试还是让getActivity()创建它?publicclassMainActivityTestextendsActivityInstrumentationTestCase2{@InjectEngineengineMock;privateMainActivitymActivity;privateButtonmLogoutBtn;

android - Dagger 可以用来在 Content Provider 上执行注入(inject)吗?

我最近一直在将Dagger集成到一个使用ContentProviders的项目中。我在我的自定义应用程序对象中创建了一个ObjectGraph实例,基本上在每个托管组件中:Activity,fragment,服务...然后,我调用getApplication(),向下转换为我的自定义Application对象,并通过我的Application类中的一些自定义实现强制注入(inject)。这似乎是根据我在Square的人发布的示例执行注入(inject)的规定方法。此模式不适用于ContentProvider实例,因为它们的生命周期与Application对象的生命周期并不像可预测的那样

android - Dagger 2 : Unable to inject dependencies in WorkManager

所以据我了解,Dagger还不支持在Worker中注入(inject)。但是正如人们所建议的那样,有一些解决方法。我已经尝试按照在线示例通过多种方式来做到这一点,但它们都不适合我。当我不尝试向Worker类中注入(inject)任何东西时,代码工作正常,只是我不能做我想做的事,因为我需要访问一些DAO和服务。如果我在这些依赖项上使用@Inject,则依赖项要么为null,要么worker永远不会启动,即调试器甚至不会进入Worker类。例如,我尝试这样做:@Component(modules={Module.class})publicinterfaceComponent{voidinj

安卓 Dagger 2 : Inject versus Provides

我对AndroidDagger2和@Inject和@Provide注释的使用有疑问。给出以下两个简化示例:publicclassA{Stringmsg;publicA(Stringmsg){this.msg=msg;}}publicclassB{publicAa;publicB(Aa){this.a=a;}}@ModulepublicclassAModule{@ProvidesAprovidesA(){returnnewA("blah");}@ProvidesBProvidesB(Aa){returnnewB(a);}}该示例非常简单,我的AModule中有两个方法,带有@Provid

android - 从数据绑定(bind)错误中找出实际错误

我使用数据绑定(bind)没有任何问题,而且效果很好。但有时它通过无缘无故地显示数据绑定(bind)错误来隐藏真正的问题,这让我很沮丧。上次我对房间数据库进行了一些更改,并在ROOMDAO中错误地使用了错误的表名。在构建项目时,androidstudio无缘无故地显示多个数据绑定(bind)错误,但不是真正的罪魁祸首(错误的表名)。当我修复该构建时。现在我又做了一些更改,它给了我同样的数据绑定(bind)错误,我正在检查每个文件以找到真正的罪魁祸首,但没有发现任何问题。显示所有错误的任何帮助,而不仅仅是数据绑定(bind)错误。这是非常烦人的AndroidStudiogradle构建没

Android之Dagger&Hilt依赖注入使用指南

简介Dagger2是一个DependencyInjection(DI)依赖注入框架。它提供给Java和Android使用,主要用于模块间解耦、提高代码的健壮性和可维护性。使用了IOC(控制反转)的思想,在编译阶段使用APT利用Java注解生成Java代码,然后结合部分手写代码来完整依赖注入工作。运行前需要先编译一次项目,目的是用APT生成中间代码。Dagger2不使用反射,在编译阶段生成代码,所以不会程序性能有影响。Dagger2官网Dagger2GithubIOC解释:IOC全名为InversionofControl,概念大体是借助于“第三方”实现具有依赖关系的对象之间的解耦。IOC和DI的

ios - 如何在 iOS 中将以下字符 ‡、†、* 作为上标附加到 NSString

我需要将以下字符‡、†、*作为上标附加到iOS中的NSString。需要你的帮助。我使用以下http://en.wikipedia.org/wiki/General_Punctuation_(Unicode_block)链接但它们附加到NSString,但我希望它们作为上标 最佳答案 尝试使用这个。你需要#import.此代码仅适用于iOS6或更高版本。UILabel*lbl=[[UILabelalloc]initWithFrame:CGRectMake(10,100,200,40)];NSString*infoString=@"X