草庐IT

dagger-compiler

全部标签

android - Dagger 2 Android 没有注入(inject)字段

我正在尝试创建第一个AndroidDagger应用。我已经阅读了一些教程,现在我正在努力让它发挥作用。问题是,当我在MainActivity中调用settings.get()时,我得到了java.lang.NullPointerException:Attempttoinvokeinterfacemethod'java.lang.Objectjavax.inject.Provider.get()'onanullobjectreferenceatbiz.golek.whattodofordinner.MainActivity.onOptionsItemSelected(MainActivi

安卓工作室 : Testing: Library dependencies that have been compiled using java 8 or above

请帮忙。我在为androidstudio设置测试时遇到了非常糟糕的时间。我已经从cucumbergithub下载了计算器示例来练习cumcumber代码测试。https://github.com/cucumber/cucumber-jvm/tree/master/android(顺便说一句,其中一些品牌的名字非常奇怪)我尝试将它与AndroidStudio一起使用。该程序运行完美(耶!)。然而,测试没有。我有一个非常可怕的消息,每次运行它时都会困扰我。*Torundexinprocess,theGradledaemonneedsalargerheap.Itcurrentlyhasapp

android - 如何将 Dagger 2 与自定义 View 一起使用?

我阅读了文档并发现,我可以注入(inject)Activity对象“HasActivityInjector”和“HasFragmentInjector”的Fragment对象,但是如何注入(inject)View对象呢?就像我有自定义View而不是fragment,如何注入(inject)其中? 最佳答案 您可以在组件内部声明inject方法funinject(view:YourCustomView)然后,当您在某些Activity或fragment上使用View时,调用overridefunonViewCreated(view:V

android - Dagger 2 - 在构造函数中注入(inject)默认值

我如何注入(inject)这个构造函数:classSomeClass@Injectconstructor(dep:Dependency,context:Context,privatevalotherClass:OtherClass=OtherClass())我只提供了Dependency和Context...但是它说不能提供OtherClass。它应该需要这个类,因为它有一个默认值...我怎样才能让它工作? 最佳答案 我认为最简单的方法是同时注入(inject)OtherClass:类OtherClass@Injectconstru

android - Dagger 2 无法从子组件注入(inject)

我知道通常使用Kotlin应该没什么区别,但我遇到过奇怪的情况,其中@Named限定符在Kotlin中需要一个作用域。我有一个ViewHolderFactory允许我创建View类型的简单映射的类->View持有者类:@SingletonclassViewHolderFactoryImpl@Injectconstructor(privatevalviewHolderComponentProvider:Provider):ViewHolderFactory(mapOf(R.layout.view_errortoErrorViewHolder::class.java,R.layout.vi

android - Dagger 场注入(inject)测试

我正在使用Dagger2,在为我的类实现测试时,在模块中生成单例提供程序时遇到了一些问题。classSomeContentProviderextendsContentProvider{//thisshouldbenormalfooifrunbyapplication,//ormockedfooifrunbytests@InjectFoofoo;publicProvider(){Component.getComponent().inject(this);}}@ModuleclassProviderModule{@Singleton@ProvidesFooprovidesFoo(){ret

android - Dagger 2 向父组件添加子组件

大家好,我无法理解以新方式添加子组件的Dagger2(在Dagger2.7中添加)。请参见下面的示例:@Component(modules={AppModule.class,MainActivityBinder.class})@SingletoninterfaceAppComponent{inject(MyApplication_)}@Subcomponent(modules=ActivityModule.class)interfaceActivitySubcomponent{inject(MainActivity_)@Subcomponent.BuilderinterfaceBuil

android - 如何使用 Dagger 2 以最少的样板访问 ViewModel 中的 Arguments/Extras Bundle?

我正在将我的应用程序转换为使用ViewModel。为了实例化ViewModel,我使用自定义Factory和Dagger2进行依赖注入(inject)。它看起来像这样:@SingletonclassViewModelFactory@Injectconstructor(privatevalviewModels:Map,@JvmSuppressWildcardsProvider>):ViewModelProvider.Factory{overridefuncreate(modelClass:Class):T=viewModels[modelClass]!!.get()asT}@Target

Android studio:Could not find method compile() for arguments 问题解决及两种解决方法探讨延伸

Couldnotfindmethodcompile()forarguments问题全称Couldnotfindmethodcompile()forarguments[org.tensorflow:tensorflow-lite:+]onobjectoftypeorg.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.如图解决方法1(简单)将compile改为implementation即可,如图参考博客couldnotfindmethodcompile()forarguments解决方法2(进阶)将c

android - 如何使用 Dagger2 将 Activity 范围内的依赖项替换为模拟

我的Activity中有一个作用域依赖项,我想用一些模拟来测试该Activity。我已经阅读了不同的方法,建议在测试期间用测试组件替换应用程序组件,但我想要的是替换Activity组件。例如,我想在我的MVP设置中针对模拟演示者测试Activity。我认为通过在Activity上调用setComponent()来替换组件是行不通的,因为Activity依赖项已经通过字段注入(inject)注入(inject),因此在测试期间,将使用真实对象。我该如何解决这个问题?Dagger1呢?是否有同样的问题? 最佳答案 注入(inject)组