안드로이드/에러

Hilt 빌드 에러시 DefaultActivityViewModelFactory

코딩하는후운 2022. 11. 7. 10:43
반응형

이전에 샘플 프로젝트하면서 작성했던 프로젝트가 빌드 오류가 난다!

# AppApplication_HiltComponents.SingletonC

# hilt cannot access DefaultActivityViewModelFactory

  1. 클래스에 @HiltViewModel 주석 추가한다.
  2. 생성자의 @ViewModelInject 주석을 @Inject로 교체한다.
  3. SavedStateHandle 생성자 매개변수에서 @Assisted를 제거한다.
  4. build.gradle 파일에서 이전 androidx.hilt:hilt-lifecycle-viewmodel 종속성을 제거한다.

 

Dependency 수정

  1. AndroidX.Hilt 부분 제거 (참고로 버전은 1.0.0-alpha02 이었음)
  2. 구글 hilt 버전 2.42로 변경 (2.28.3-alpha 이었음)
  3. 코틀린버전 1.5.0으로 변경 (1.4.20 이었음)

 

 

수정전 ViewModel

class PhotoViewModel @ViewModelInject constructor(
    @ApplicationContext private val context: Context
) :

 

수정후 ViewModel

@HiltViewModel
class PhotoViewModel @Inject constructor(
    @ApplicationContext private val context: Context
) :

 

수정전 Module

@Module
@InstallIn(ActivityRetainedComponent::class)
class UseCaseModule {
    @Provides
    @ActivityRetainedScoped
    fun provideGetMediaUseCase(
        @Named("GalleryRepositoryImpl") galleryRepository: GalleryRepository
    ): GetMediaUseCase {
        return GetMediaUseCase(galleryRepository)
    }
}

수정한 Module

@Module
@InstallIn(SingletonComponent::class)
class UseCaseModule {
    @Provides
    @Reusable
    fun provideGetMediaUseCase(
        galleryRepository: GalleryRepository
    ): GetMediaUseCase {
        return GetMediaUseCase(galleryRepository)
    }
}

 


hilt가 이전버전으로 작성되어 생긴 문제 같다.

 

 

 

 

참조 :

https://smomo.tistory.com/52

반응형