У меня есть следующий проект в Github: https://github.com/Ali-Rezaei/TMDb-Paging, который я использую Dagger2 для внедрения зависимостей.
Один из моих Module
классов выглядит следующим образом: java:
@Module
public abstract class DetailModule {
@FragmentScoped
@ContributesAndroidInjector
abstract DetailFragment detailFragment();
@Provides
@ActivityScoped
static Movie provideMovie(DetailActivity activity) {
return activity.getIntent().getExtras().getParcelable(EXTRA_MOVIE);
}
}
Как видите, provideMovie
метод static
.Когда я конвертирую его в Kotlin:
@Module
abstract class DetailModule {
@FragmentScoped
@ContributesAndroidInjector
internal abstract fun detailFragment(): DetailFragment
companion object {
@Provides
@ActivityScoped
internal fun provideMovie(activity: DetailActivity): Movie {
return activity.intent.extras.getParcelable(EXTRA_MOVIE)
}
}
}
Но когда я строю проект, я получаю следующую ошибку компилятора Kotlin:
error: @Provides methods can only be present within a @Module or @ProducerModule
public final com.sample.android.tmdb.vo.Movie provideMovie$app_debug(@org.jetbrains.annotations.NotNull()
Может ли быть любое решение иметь класс в Kotlin?