草庐IT

java - 用 dagger 2 查看依赖注入(inject)

我有一个扩展TextView的自定义View。我应该在哪里调用我的组件来注入(inject)View?component.inject(customTextView); 最佳答案 所以,我发现我需要在自定义View的构造函数中添加注入(inject)(在所有View中,或者让一个调用另一个)例子:publicclassCustomTextViewextendsTextView{@InjectAnyProvideranyProvider;publicCustomTextView(Contextcontext){this(context

java - Dagger :类无法与键绑定(bind)

我是第一次尝试dagger,在配置模块后,我收到一个我不明白的错误。我的代码是:publicclassParrot{privateLanguagelanguage;@InjectpublicParrot(Languagelanguage){this.language=language;}publicvoidsayHello(){System.out.println(language.getSalute());}}publicinterfaceLanguage{publicStringgetSalute();}publicclassEnglishLanguageimplementsLan

android - 从 Android Studio 的全局搜索中删除 Dagger 生成的类?

真是气死人了。由于Dagger2,我需要更多时间来寻找一些类(class)。 最佳答案 如果您谈论的是生成的MembersInjector和Factory类:MyClass_MembersInjector.javaMyClass_Factory.java您可以通过将它们添加到File/Settings/Editor/FileTypes并将适当的通配符添加到Ignorefilesandfolders编辑文本:*_MembersInjector.java;*_Factory.java;会导致大部分生成的类被忽略:之前:之后:如果您甚至不

android - Dagger 模块包含周期

我对Dagger还是个新手,正在努力掌握一些东西。我想将我的模块分成逻辑组,每个组都提供自己的功能,但基本上就像在一个模块中一样。例如,假设我的主要应用程序模块定义如下://com.example.android.MyAppModule.java@Module(includes=AnalyticsModule.class,injects={})publicclassMyAppModule{//variousprovides}我还有另一个这样定义的模块,它设置了一个ErrorReporter接口(interface)并为其提供了具体的实现。//com.example.android.an

android - Dagger 2 在 Activity 停止时保存和恢复状态

我陷入了僵局。我正在使用Dagger2进行依赖项注入(inject),但是当应用程序进入后台时我正在丢失状态。这是场景:应用程序启动并创建依赖项。只要应用程序停留在前台,一切都可以完美运行。但是,在某些情况下,应用程序必须进入后台。当它返回时,存储在我注入(inject)的类之一中的值丢失了。对于我自己没有依赖关系的注入(inject)类,一切似乎都能正确恢复。但是,有一个注入(inject)的类具有注入(inject)的依赖项,而这个是无法恢复的。这是我的设置方式:AppComponent.java@Singleton@Component(modules={AppModule.cla

android - Dagger 2 : Component cannot depend on multiple scoped components

是的,我知道之前有人问过这个问题,是的,我知道这是“设计使然”的。但我想做这样的事情:@Component(modules={RealmModule.class})publicinterfaceRealmComponent{Realmrealm();}@Component(modules={RepositoryModule.class})publicinterfaceRepositoryComponent{PersonRepositorypersonRepository();ScheduleRepositoryschedulesRepository();}@Component(depe

android - 在 Dagger 2 中异步构建依赖关系图

这是一个更理论化的问题。如果我走错了方向,请告诉我。有没有办法在Dagger2中异步/并行加载一些图形依赖项?甚至应该在Dagger的上下文中考虑它吗?我的问题主要与应用启动时间有关。许多外部依赖项,如Mixpanel、Crashlytics/Fabric、Retrofit(RestAdapter)导致应用预热时间超过1秒。对我帮助很大的是Lazy界面,但是最后的效果还是不能让我满意。有什么想法吗?示例App有SplashActivity,它依赖于SplashActivityPresenter,而SplashActivityPresenter又依赖于:Mixpanel、RestAdap

java - 如何使用 Proguard 使用 Dagger 2.0 成功混淆项目?

我很高兴看到Google的Dagger分支已经可用。(在撰写本文时,我意识到它尚未“发布”。)我们有一个大量使用dagger的android应用程序,尽管我们没有使用许多更高级的功能。我们有混淆代码的业务需求,所以我尝试升级到Dagger2.0-SNAPSHOT,希望从Dagger中删除运行时反射可以运行混淆。但是我发现就在运行时用于加载类的字符串常量而言,反射仍然被使用。下面是我的proguard.conf的相关部分。-dontpreverify-keepattributes*Annotation*,JavascriptInterface,SourceFile,LineNumberT

android - 基于构建类型和风格的更好的 Dagger 依赖注入(inject)?

我正在使用方法为这个问题的回答中描述的Dagger提供模块AndroidCustomizeWorkflowforProductFlavors我们的方法有点不同-我们在debug构建类型中有Modules在src/debug/java和release中在src/release/java中构建类型。我们的主模块称为ApplicationModule,它包括所有其他模块。src/debug/java中的Modules为调试、日志记录等提供了一些自定义行为,并覆盖了ApplcationModule。现在我们需要具有基于应用程序风格的自定义行为。这样做的正确方法是什么?例如,flavorA到C应

android - annotationProcessor + androidTest + dagger2

对于插桩测试,我有一个创建TestComponent的TestApplication,但不再生成该文件(Error:/xxx/TestApplication.java:16:无法解析import.xxx.DaggerTestApplicationComponent)。我无法确定根本原因。我尝试了不同的AndroidStudio(2.2、2.1.2)、不同的gradle插件(2.2.0-alpha6、5、4)和不同版本的Dagger(2.2到2.6)。我应该使用androidTestAnnotationProcessor吗?(以前不是这样的)编辑:要使用dagger2.6,需要添加cla