我正在使用Dagger2进行DI。我的项目有2个模块,一个是库的:common模块,一个是实际应用程序的:app模块。在库模块中,我有AndroidApp扩展MultiDexApplication并在:app模块中继承。我关注了Google的dagger2example用Dagger2添加DI。每次运行该应用程序时,我都会收到以下错误消息:Android/common/src/main/java/com/common/AndroidApp.java:10:Theimportcom.common.di.DaggerAndroidAppComponentcannotberesolved.但
我正在尝试创建以下场景:publicinterfaceDaggerInjectionFactory{voidinject(MyActivitymyActivity);}@Singleton@Component(modules={RestModule.class})publicinterfaceMyRestComponentextendsDaggerInjectionFactory{RestClientprovideRestClient();}@Singleton@Component(modules={PreferencesModule.class})publicinterfaceMyP
我是Dagger2的新手,正在尝试IntelliJ中的Dagger2CoffeeExample,它似乎不会生成DaggerCoffeeApp_Coffee(它应该生成它),即使我密切关注github中Dagger2的代码示例.PublicclassCoffeeApp{@Singleton@Component(modules={DripCoffeeModule.class})publicinterfaceCoffee{CoffeeMakermaker();}publicstaticvoidmain(Stringargs[]){Coffeecoffee=DaggerCoffeeApp_Co
我目前正在开发一个AndroidMVP应用程序,我正在尝试将我的依赖项分离到不同的Dagger2模块中。我遇到的问题是关于在单元测试时间更改模块。场景如下:LoginComponent,它使用两个模块:LoginModule和HTTPModuleLoginModule在其中一个方法中需要一个由HTTPModule提供的OkHttp实例。代码如下:@Singleton@Component(modules={LoginModule.class,HTTPModule.class})publicinterfaceLoginComponent{}@Module(includes={HTTPMod
我想将dagger库用于android库项目。我也在休假Howtousedaggerinaandroidlibraryproject但没有得到适当的实现。有人有演示或关于它的任何想法吗?我还希望这些库类在项目中扩展以进行一些更改。 最佳答案 我不知道这个库是什么,但我假设大部分代码不包含生命周期不受控制的类(Activity、服务、fragment等)。如果为真,则只需使用构造函数来传递您的依赖项。如果不是,则您必须决定谁将掌握有关依赖关系图的知识。通常的解决方案是上下文可转换为对象图知识,或者它知道如何获取它。通常,生命周期不受控
我正在尝试创建第一个AndroidDagger应用。我已经阅读了一些教程,现在我正在努力让它发挥作用。问题是,当我在MainActivity中调用settings.get()时,我得到了java.lang.NullPointerException:Attempttoinvokeinterfacemethod'java.lang.Objectjavax.inject.Provider.get()'onanullobjectreferenceatbiz.golek.whattodofordinner.MainActivity.onOptionsItemSelected(MainActivi
我阅读了文档并发现,我可以注入(inject)Activity对象“HasActivityInjector”和“HasFragmentInjector”的Fragment对象,但是如何注入(inject)View对象呢?就像我有自定义View而不是fragment,如何注入(inject)其中? 最佳答案 您可以在组件内部声明inject方法funinject(view:YourCustomView)然后,当您在某些Activity或fragment上使用View时,调用overridefunonViewCreated(view:V
我如何注入(inject)这个构造函数:classSomeClass@Injectconstructor(dep:Dependency,context:Context,privatevalotherClass:OtherClass=OtherClass())我只提供了Dependency和Context...但是它说不能提供OtherClass。它应该需要这个类,因为它有一个默认值...我怎样才能让它工作? 最佳答案 我认为最简单的方法是同时注入(inject)OtherClass:类OtherClass@Injectconstru
我知道通常使用Kotlin应该没什么区别,但我遇到过奇怪的情况,其中@Named限定符在Kotlin中需要一个作用域。我有一个ViewHolderFactory允许我创建View类型的简单映射的类->View持有者类:@SingletonclassViewHolderFactoryImpl@Injectconstructor(privatevalviewHolderComponentProvider:Provider):ViewHolderFactory(mapOf(R.layout.view_errortoErrorViewHolder::class.java,R.layout.vi
我正在使用Dagger2,在为我的类实现测试时,在模块中生成单例提供程序时遇到了一些问题。classSomeContentProviderextendsContentProvider{//thisshouldbenormalfooifrunbyapplication,//ormockedfooifrunbytests@InjectFoofoo;publicProvider(){Component.getComponent().inject(this);}}@ModuleclassProviderModule{@Singleton@ProvidesFooprovidesFoo(){ret