jjzjj

android - 在测试中禁用 Dagger 注入(inject)

我有以下使用Dagger注入(inject)其字段的LoginFragment:classLoginFragment:DaggerFragment(){@InjectlateinitvarviewModelFactory:ViewModelProvider.FactoryoverridefunonActivityCreated(savedInstanceState:Bundle?){super.onActivityCreated(savedInstanceState)viewModel=ViewModelProviders.of(this,viewModelFactory).get(L

android - 将模拟 Retrofit API 服务实例注入(inject) ActivityInstrumentTestCase2

我想使用Espresso为Activity编写功能测试,使用通过MockRestAdapter(https://github.com/square/retrofit/blob/master/retrofit-mock/src/main/java/retrofit/MockRestAdapter.java)创建的模拟RetrofitAPI服务实例。但这有点棘手,因为您无法真正通过Activity的构造函数注入(inject)任何依赖项。目前,单个RetrofitAPI服务实例存在于我的Application对象中,我在我的每个Activity的onCreate()方法中创建了一个对它的引

android - 使用 Dagger 时将 RestAdapter.build() 和 .create() 方法分开的原因是什么?

过去几个月我一直在使用Dagger/Retrofit,并且看到了为api实现ApiModule类的常见模式。这些ApiModule通常看起来像这样:@Provides@SingletonClientprovideClient(OkHttpClientclient){returnnewOkClient(client);}@Provides@SingletonEndpointprovideEndpoint(){return"release".equalsIgnoreCase(BuildConfig.BUILD_TYPE)?Endpoints.newFixedEndpoint(PRODUCT

android - 如何在 Activity 之间共享 Dagger2 子组件

我想知道如何在Activity之间共享子组件?假设我有一个与应用程序一起存在的全局AppComponent。当用户实际登录我的应用程序时,我想要一个跨多个Activity的UserComponent。当用户登录时,我的应用会创建一个UserComponent,其他Activity必须从某个地方检索它,但我不知道什么是最好的“某个地方”。我应该将UserComponent存储在应用程序中并创建一个getter和一个重置组件的方法吗?我是否应该将此组件放在ApplicationModule内的“holder”对象中,并在每个子Activity中通过从ApplicationComponent

android - Dagger -Android : Missing setters for modules

数据模块:@ModuleclassDataModuleconstructor(application:App){privatevardb:Database=Room.databaseBuilder(application.applicationContext,Database::class.java,"database.db").build()@Provides@PerApplicationfunprovideDatabase():Database{returndb}应用:classApp:DaggerApplication(){@InjectlateinitvaractivityDi

android - Dagger:组件中存在具有匹配键的绑定(bind)

我正在使用Dagger2.16并关注this我的Dagger实现的文章。在我只有一个Activity(HomeActivity)之前,此实现一切正常。我一开始在SplashScreenActivity中实现Dagger。我开始收到此错误。这是我项目中的一些代码AppComponent.kt@Singleton@Component(modules=[AndroidInjectionModule::class,AppModule::class,ActivityBuilder::class,ServiceBuilder::class,BroadcastRecieverBuilder::cla

java - Android Architecture Blueprints "todo‑mvp‑dagger",@Provides for TasksRepository 在哪里?

从此处查看Android架构蓝图“todo‑mvp‑dagger”:https://github.com/googlesamples/android-architecture.我试图了解Dagger2的实现,但我似乎无法弄清楚他们如何让Dagger2提供TasksRepository。他们有@Provides用于“provideTasksLocalDataSource”和“provideTasksRemoteDataSource”,但实际的TaskRepository在哪里?在TodoApplication类中,他们有这个:@InjectTasksRepositorytasksRepo

android - Dagger2,同时提供不同API的Retrofit实例

在我的项目中,我使用Retrofit并尝试使用Dagger来注入(inject)依赖项。我还有2个具有不同API的Retrofit服务。我需要同时使用2个具有不同baseUrls的不同API。我卡在这里,不知道下一步该做什么。我的应用模块:@ModulepublicclassApplicationModule{privateStringFIRST_API_URL="https://first-api.com";privateStringSECOND_API_URL="https://second-api.com";privateStringmBaseUrl;privateContext

java - Dagger 2 : error while getting a multiple instances of same object with @Named

我怎样才能得到像游标一样返回类型相同的多个实例例如:-Module@CursorScopepublicclassCursorModule{@ProvidesCursorprovideSongCursor(@Named("Song")Musicianmusician){returnmusician.getApplicationContext().getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,newString[]{BaseColumns._ID,MediaStore.Audio.AudioCo

android - 在构造函数中仅注入(inject)某些参数

我有主持人classPhonePresenter@Injectconstructor(privatevalpreference:DataPreference,privatevalioScheduler:Scheduler=Schedulers.io())ioScheduler是默认参数。我只想注入(inject)preference:DataPreference。现在我有异常(exception)[dagger.android.AndroidInjector.inject(T)]io.reactivex.Schedulercannotbeprovidedwithoutan@Provid