1
我有這個問題,當我嘗試使用Kotlin和匕首2。匕首不能提供注射與Kotlin
「接口不能沒有@規定外或@產生註解方法提供。」
這是我的模塊類:
@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是接口和匕首有問題注入它在活動模塊內部返回AndroidAudio 實例,它實現了Audio接口,我不確定這裏有什麼問題,在Java中,我有很多次接口注入,我從來沒有遇到過這個問題 如果有人可以幫助我,我會很開心。 比KS!