Kotlin과 Dagger 2를 사용할 때이 문제가 있습니다.대거는 Kotlin을 주입 할 수 없습니다.
이 내 모듈 클래스입니다
". 인터페이스는 @ Provides- 또는 @ - 주석 생산 방법없이 제공 할 수 없다"
@Module
class MenuActivityModule(@NonNull private val menuActivity: MenuActivity) {
@Provides
@MenuActivityScope
fun provideGameScreenDimensions(application: Application) =
GameScreenDimension(application.resources)
@Provides
@MenuActivityScope
fun provideAudio() =
AndroidAudio(menuActivity)
@Provides
@MenuActivityScope
fun providePowerManager() =
menuActivity.getSystemService(Context.POWER_SERVICE) as PowerManager
@Provides
@MenuActivityScope
fun provideWakeLock(@NonNull powerManager: PowerManager) =
powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Preferences.APPLICATION_TAG)
}
This is a part of my Activity class, where I inject some variables with Dagger:
class MenuActivity : BaseActivity {
@Inject
lateinit var myAudio: Audio
@Inject
lateinit var wakeLock: PowerManager.WakeLock
@Inject
lateinit var apiService : ApiService
@Inject
lateinit var sharedPref : SharedPreferences
@Inject
lateinit var gameDimension : GameScreenDimension
init {
DaggerMenuActivityComponent.builder()
.menuActivityModule(MenuActivityModule(this))
.build()
.inject(this)
}
//more code
}
Audio.kt 인터페이스이고 대거 투입하는 문제가 그것은 활동 모듈 내에서 오디오 인터페이스를 구현하는 안드로이드 인스턴스를 반환 오전. 나는 여기에 문제가 무엇인지 모르겠다. 자바에서 나는 인터페이스의 많은 시간 주입 및 전에이 문제가 없었어요. 누군가가 수 있습니다. 내가 너무 행복해 지도록 도와주세요. 보다 ks!