草庐IT

dagger-compiler

全部标签

java - 适用于 Android 的 Dagger : Injecting an Activity to the object graph after calling setContentView

我想在Android上使用Dagger将Activity的实例注入(inject)到另一个类中,如下所示:classPresentationLayer{ActivitymActivity;@InjectpublicPresentationLayer(Activityactivity){this.mActivity=activity;}publicvoidpresentData(Useruser){((TextView)mActivity.findViewById(R.id.username)).setText(user.getName());//...//...}}我能够进行注入(in

带有 Dagger 2 的 Android MVP - 具有多个 fragment 的 Activity

我一直在查看使用Dagger2的MVP的GoogleAndroid架构示例:https://github.com/googlesamples/android-architecture/blob/todo-mvp-dagger/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksActivity.java但是,这个例子相当简单——每个Activity只有一个Fragment,Dagger组件构建在Activity中,并用于将Activity与Presenter注入

带有 Dagger 2 的 Android 普通 Junit

我曾经在MVP工作,我通常使用普通的Junit(不是Instrumentation!)测试我的Presenter,因为Presenter只有业务逻辑,没有任何对Android内部的引用。现在切换到Dagger2后,我了解到我在为我的应用程序组件设置“TestModule”时遇到了问题。在测试类中创建组件将不起作用(可能是因为“apt”没有在那里运行)未找到任何将Dagger与标准Junit测试结合使用的示例。我发现的每个示例都只依赖于Instrumentation测试或Roboelectric(基本上模拟Activity和其他Android相关的东西),但这对我来说只是一个UI测试,我

java - Dagger 2 : Cannot be provided without an @Provides-annotated method

我刚开始学习dagger2,遇到了一个奇怪的问题,在我看来像是一个错误。这是模块:@ModulepublicclassSimpleModule{@ProvidesCookerproviderCooker(){returnnewCooker("tom","natie");}}组件:@Component(modules=SimpleModule.class)publicinterfaceSimpleComponent{voidinject(DaggerTestActivityactivity);}接口(interface):publicinterfaceCoffeeMaker{String

安卓和 Maven : Speed up project compilation and deploy

有没有办法加快使用maven编译部署到设备上的android项目?我在IntelliJIdea中测试了一个空白的android项目(使用“androidcreateproject”从命令行创建)的构建时间——从按下“运行”按钮到在设备上启动应用程序我花了4秒。然后我向它添加了Maven支持-现在它需要将近7秒。对于更大的项目,它需要更多的时间。例如添加了ActionBarSherlock依赖的空白工程,编译、部署、运行大约需要25-30秒。有没有办法加快这个过程?我想听听Square开发人员(尤其是JakeWharton)的回答:)你的android项目编译需要多长时间?

android - 在 Robolectric 测试中覆盖 Dagger 模块

我正在开发一个Android应用程序,我一直在使用Dagger进行依赖注入(inject)。我现在正在尝试测试具有这些依赖项之一的fragment,我们称它为ProductsService。在我的Robolectric测试中,我有一个覆盖ProductsService的测试模块:@Module(includes=ProductsModule.class,injects={Fragment.class,FragmentTest.class},overrides=true)staticclassMockProductsModule{@Provides@SingletonpublicProd

java - Dagger 2 "Dagger"前缀组件无法编译?自动生成类

我正在尝试在Android上使用Dagger2。我以前让它工作,我有一个appModule将依赖项注入(inject)应用程序中的特定类。我的问题是我收到错误Error:(14,55)error:cannotfindsymbolclassDaggerAppComponent正在尝试导入。这是一个自动生成的类下面是我的build.gradle文件中我的Dagger特定依赖项compile'com.google.dagger:dagger-compiler:2.0.2'compile'com.google.dagger:dagger:2.0.2'provided'javax.annotat

idea编译maven项目报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile

项目场景:创建了一个maven工程,编译时报错问题描述Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile(default-compile)onprojectmybatisplus:Fatalerrorcompiling:无效的标记:--release->[Help1]原因分析:项目中maven-plugin版本不匹配。我的IDEA版本2023.2.3,JDK版本为1.8.我是把自己的maven版本降低到3.5.1,编译通过。解决方案:在pom.xml中配置编译插件以使用正确的Java版

android - Dagger2 - 如何在运行时有条件地选择模块

我有一个大型Android应用程序,需要根据操作系统版本、制造商和许多其他内容运行不同的代码。但是,此应用程序需要是单个APK。它需要在运行时足够聪明才能确定要使用的代码。到目前为止,我们一直在使用Guice,但性能问题导致我们考虑迁移到Dagger。但是,我一直无法确定我们是否可以实现相同的用例。主要目标是让我们在启动时运行一些代码以提供兼容模块的列表。然后将此列表传递给Dagger以连接所有内容。这是我们要迁移的Guice当前实现的一些伪代码importcom.google.inject.AbstractModule;@Feature("Wifi")publicclassWifiD

android - Dagger 2 : Error when two components has same inject method signature

我有这个组件:@Singleton@Component(modules=OauthModule.class)publicinterfaceOauthComponent{voidinject(LoginActivitya);}和模块:@ModulepublicclassOauthModule{@Provides@SingletonOauth2ServiceprovideOauth2Service(){returnnewOauth2StaticService();}}这是另一个组件:@Singleton@Component(modules=LoggedUserModule.class)pu