-
Android) Dagger Hilt - @ViewModelInject, @Assited, @ApplicationComponent is Deprecated(2.33-beta)Android 2021. 4. 18. 13:31
Dagger Hilt
Dagger Hilt를 사용하여 의존성 주입을 할 때 다음과 같이 코드를 작성했습니다.
// ViewModel class SkinViewModel @ViewModelInject constructor( private val skinRepository: SkinRepository, private val dispatchers: BaseProvider, @Assisted private val savedStateHandle: SavedStateHandle ) : ViewModel() { // Something() }
// Module @Module @InstallIn(ActivityComponent::class) abstract class AnalyticsModule { @Binds abstract fun bindAnalyticsService( analyticsServiceImpl: AnalyticsServiceImpl ): AnalyticsService }
저는 Dagger Hilt를 2.33-beta 버전으로 마이그레이션을 진행 후 빌드를 돌려보니 오류가 발생했습니다.
1.0.0-alpha03 버전부터
Deprecated된 어노테이션들이 있었습니다. (@ViewModelInject, @Assited, @ApplicationComponent)그렇기 때문에 다음과 같이 어노테이션들을 변경해 줘야 합니다.
// ViewModel @HiltViewModel class SkinViewModel @Inject constructor( private val skinRepository: SkinRepository, private val dispatchers: BaseProvider, private val savedStateHandle: SavedStateHandle ) : ViewModel() {
// Module @Module @InstallIn(SingletonComponent::class) abstract class AnalyticsModule { @Binds abstract fun bindAnalyticsService( analyticsServiceImpl: AnalyticsServiceImpl ): AnalyticsService }
반응형'Android' 카테고리의 다른 글
Android) Debug 모드에서는 작동하는데 Release 모드에서 Crash 발생할때 (Debug, Release 차이점) (2) 2021.05.23 Android) Navigation을 사용해 startActivityForResult 구현하기 (0) 2021.04.21 Android) MediaPlayer 재생 지연 오류 (0) 2021.04.13 Android) 음성 녹음을 위한 MediaRecorder 알아보기 (0) 2021.04.12 Android) Retrofit2 작동 원리 알아보기 (0) 2021.04.09