У меня проблемы с получением конверсии Kotlin, чтобы хорошо играть с Dagger.
Мой предыдущий файл в Java компилируется нормально:
@Module
public class InputModule extends AbstractMvpModule<InputView> {
public InputModule(InputView view) {
super(view);
}
@Provides @ActivityScope
public InputPresenter provideMvpPresenter(
MvpPresenterActions mvpPresenterActions,
ApiManager ApiManager,
UserState userState,
ErrorDialogFactory errorDialogFactory,
AppCache appCache,
VariantFactory variantFactory,
InputReducer inputReducer,
UserState userState) {
return new InputPresenterImpl(
mvpPresenterActions,
ApiManager,
userState,
errorDialogFactory,
appCache,
variantFactory,
inputReducer,
userState);
}
Но после преобразования в Kotlin:
@Module
class PreferencesModule(preferencesActivity: PreferencesActivity) :
AbstractMvpModule<PreferencesView>(preferencesActivity) {
@Provides
@ActivityScope
fun provideMvpPresenter(
mvpPresenterActions: MvpPresenterActions,
userState: UserState,
appCache: AppCache<*, *>,
fcmState: FcmState,
preferencesReducer: PreferencesReducer,
stringUtil: StringUtil,
ccpaPreferenceRowHelper: CcpaPreferenceRowHelper
): PreferencesPresenter {
return PreferencesPresenterImpl(
mvpPresenterActions,
userState,
appCache,
fcmState,
preferencesReducer,
stringUtil,
ccpaPreferenceRowHelper
)
я получаю
ошибка: [Dagger / MissingBinding] com.test.android.appcache.AppCache не может быть предоставлен без аннотируемого метода @ Provides. com.test.android.appcache.AppCache внедряется в com.test.android.mvp.ui.activity.pwi.v2.card.CardInputModule.provideMvpPresenter (…, appCache,…) com.test.android.mvp.ui. activity.pwi.v2.card.CardInputPresenter предоставляется по адресу
. Здесь представлен интерфейс AppCache
public interface AppCache<C extends CacheableApiCall, V extends CacheableApiResponse>
extends ApiCache<C, V>, LogOutListener {
. Есть ли проблема с способом представления дисперсии в Kotlin дляAppCache
?
РЕДАКТИРОВАТЬ: Вот модуль, который обеспечивает AppCache
@Provides @AppScope
public static AppCache provideAppCache(
@Named(Names.SHARED_PREFS_CACHE_TIMES) SharedPreferences cacheTimes,
@Named(Names.APP_CACHE_DIR_INTERNAL) File appCacheDir,
CachePolicies cachePolicies,
AppTimingTracker appTimingTracker,
Handler handler,
AppUpgrader appUpgrader) {
AppCacheImpl appCache = new AppCacheImpl(cacheTimes, appCacheDir, cachePolicies, appTimingTracker, handler);
appUpgrader.addAppUpgradeListener(appCache);
return appCache;
}