Я решил несколько недель назад начать преобразование моего существующего приложения (я написал его в Java) в kotlin.
Я преобразовал только одно упражнение, и я хотел проверить функциональность, прежде чем я буду двигаться вперед и изменить все мои классы.
К сожалению, я получаю следующую ошибку:
Unresolved reference: DaggerSearchComponent
Вот как я разрешаю свои зависимости с помощью этого действия, этот код будет вызываться из метода onCreate:
SearchActivity.kt
override fun resolveDependency() {
DaggerSearchComponent.builder()
.applicationComponent(applicationComponent)
.searchModule(SearchModule(this))
.build().inject(this)
}
SearchComponent.java
@PerActivity
@Component(modules = SearchModule.class, dependencies = ApplicationComponent.class)
public interface SearchComponent {
void inject(SearchActivity activity);
}
Компонент этого действия все еще написан с использованием Java, хотя я пытался преобразовать его с помощью Kotlin, но я получил ту же ошибку.
Я добавил плагин kotlin в свой build.gradle (Модуль: приложение)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
build.gradle (проект)
apply plugin: 'kotlin-kapt'
buildscript {
ext.kotlin_version = '1.3.21'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Я не нашел никакой другой полезной информации, кроме добавления плагина kotlin в файл gradle приложения, но у меня это не сработало.
При использовании dagger2 можно ли использовать kotlin с java или мне нужно преобразовать каждый компонент / модуль в kotlin перед его тестированием?