草庐IT

dagger-compiler

全部标签

android - Dagger 2 : Scoping and handling release/cleanup of provided injection

是否可以限定此范围并在模块或其他地方提供释放方法以防止内存泄漏。前任。我需要在onDestroy()中关闭一个数据库连接,但如果这可以由模块本身处理就好了。考虑以下示例*代码。*阅读容易出错的代码,风险自负模块@dagger.Module@lombok.NoArgsConstructorpublicclassPersistenceModule{@Provides@SingletonDatabaseProviderprovidesDatabaseHelper(Contextcontext){returnnewDatabaseProvider(context);}}Activitypubl

android - 使用适用于 Android MVP 的 Dagger 2 设置模块和组件 - 具有多个 fragment 的 Activity

我使用Dagger2已经有一段时间了,但我仍在尝试解决一些问题。有一件事我还是不太擅长正在为不同的情况设置模块和组件,例如具有多个fragment的Activity。我见过很多实现,但大多数时候都有些不同。那么,让我公开一下我当前使用MVP的应用程序结构,如果我的实现是否可行,我想听听一些意见。@ModulepublicfinalclassApplicationModule{privateContextmContext;publicApplicationModule(Contextcontext){mContext=context;}publicApplicationModule(){

Java 模块没有 `api` ,必须使用 `compile` ?

如https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations中所述,我们现在有api和implementation。在Android模块中,即applyplugin:'com.android.application',我们两者都有。然而,在普通的Java模块中,即applyplugin:'java'(由我的Android应用程序模块使用),我只能找到implementation,但找不到api.因此在其中一个依赖中,我需要使用compile,而不能使用a

android - Dagger 2 和 Android Annotations 可以一起工作吗?

我读过hereAndroid注释已更新为适用于Dagger(1),但我不确定它是否也自动适用于Dagger2。有人同时使用AA和Dagger2吗?谢谢。 最佳答案 我同时使用了dagger2、AndroidAnnotations和ButterKnife(用于适配器),它们工作正常。与dagger1的一个区别是你必须注入(inject)每个特定的类(而不仅仅是父Activity)声明@Inject字段。但是您不必注入(inject)由AndroidAnnotations生成的类,因为注入(inject)的字段未在生成的类中声明。

java - 如何使用 Dagger 2 注入(inject) pojo 依赖项?

我有一个简单的pojo类:publicclassMySimpleClass{privateListmDependency;publicMySimpleClass(Listdependency){mDependency=dependency;}}我正在尝试使用Dagger2使用依赖注入(inject)创建它。现在我有一个简单的模块和组件:@ModulepublicclassMySimpleClassModule{@ProvidesMySimpleClassprovideMySimpleClass(Listdependency){returnnewMySimpleClass(depende

java - Dagger 2.11 : Local Singleton when using @ContributesAndroidInjector

我有一个使用@ContributesAndroidInjector注释(https://google.github.io/dagger/android.html)的Dagger设置。ComponentApplication/\SubcomponentDrawerActivitySubcomponentSubActivity|SubcomponentDrawerFragment在SubActivity和DrawerActivity中,我使用了标记为@Singleton的相同存储库实例。@Singleton@Component(modules={AndroidInjectionModule

Android Dagger 2.14 设置

我正在尝试弄清楚如何使用dagger2设置android项目,但我做错了。Dagger2和android依赖注入(inject)对我来说是相对较新的概念。这是我的设置。//App.javarootoftheapplicationpublicclassAppextendsDaggerApplication{@OverrideprotectedAndroidInjectorapplicationInjector(){AppComponentappComponent=DaggerAppComponent.create();appComponent.inject(this);returnapp

android - 如何修复错误 Gradle DSL 方法未找到 : 'compile()' ?

我正在尝试将googleplay计费库与我的android应用程序集成,当我尝试添加此依赖项时(compile'com.android.billingclient:billing:1.0')在应用程序模块的build.gradle文件。我收到以下错误:ERROR:GradleDSLmethodnotfound:'compile()'Possiblecauses:Theproject'work'maybeusingaversionoftheAndroidGradleplug-inthatdoesnotcontainthemethod(e.g.'testCompile'wasaddedin

android - 在 Android 应用程序中选择 "Compile with"API 选项的良好实践

创建Android应用程序时,我必须选择“编译方式”API选项。该选项的帮助说明我通常使用最新版本,或者第一个支持我想使用的所有API的版本。我有以下问题:*据我所知,最新的API“包含或支持”(不确定是否因为使用了Android支持库)以前的API。这使得不必下载以前的API来编译具有一些以前的API要求的android项目?例如,假设我要创建一个“目标SDK”为GingerBread的应用程序,在这种情况下使用最新的API(JellyBeans)作为“编译API”是否是一个好习惯?我想问题可能出在使用仅适用于JellyBeans的API,但Lint可以帮助解决这个问题。*如果上面的

android - 如何在 IntelliJ 中配置 Dagger

我下载了dagger,因为它似乎是Android依赖注入(inject)的好选择。但是我在集成编译器时遇到了一些麻烦。是否有任何关于正确设置的提示?我遵循了关于android注释的说明,因为这个项目似乎很相似。但它不适用于Dagger。我做了什么:我将dagger-1.1.0.jar和javax.inject-1.jar添加到我项目的lib文件夹中,并像我一样添加了一个名为“compile-libs”的新文件夹,其中包含“dagger-compiler-1.1.0.jar”不希望此文件打包在*.apk中。我在模块的依赖项中添加了dagger和javax.inject。现在是棘手的部分: