【发布时间】:2016-05-10 21:38:56
【问题描述】:
我正在尝试将我们当前的系统从 dagger 1 迁移到 2,但我被困了半天。我认为我不太了解这一点。
这是我的模块:
public class BaseModule {
private final Context context;
private final SharedPreferences rawSharedPreferences;
public BaseModule(
Context context,
@Named("RawPreferences") SharedPreferences rawSharedPreferences
) {
this.context = context;
this.rawSharedPreferences = rawSharedPreferences;
}
@Provides
@Singleton
public Context provideContext() {
return context;
}
@Provides
@Singleton
public DevicePlatform provideDevicePlatform(AndroidDevicePlatform devicePlatform) {
return devicePlatform;
}
@Provides
@Named("RawPreferences")
@Singleton
public SharedPreferences provideRawSharedPreferences() {
return rawSharedPreferences;
}
@Provides
@Named("RawPreferencesStore")
@Singleton
public SharedPreferencesStore provideRawSharedPreferencesStore(
@Named("RawPreferences") SharedPreferences sharedPreferences) {
return new AndroidSharedPreferencesStore(sharedPreferences);
}
还有我的组件:
@Singleton
@Component(
modules = {BaseModule.class}
)
public interface BaseComponent {
void inject (DefaultClientController defaultClientController);
void inject (StatisticsProvider statisticsProvider);
Context provideContext();
AndroidDevicePlatform provideDevicePlatform(AndroidDevicePlatform devicePlatform);
SharedPreferences provideRawSharedPreferences();
SharedPreferencesStore provideRawSharedPreferencesStore(
@Named("RawPreferences") SharedPreferences sharedPreferences);
}
我在运行providerRawSharedPreferencesStore 时不断收到此错误:
Error:(168, 28) 错误:成员注入方法只能返回注入的类型或void。
我不明白为什么。有人可以帮帮我吗。谢谢!
【问题讨论】:
标签: dagger-2