Android Studio/compose

[Compose] java.lang.RuntimeException: Cannot create an instance of class ViewModel 에러 해결

혁준 2022. 12. 16. 11:26

Compose 코드를 작성하던 중 아래와 같은 장문의 에러를 마주하게 되었습니다..!

 

확인 결과 ViewModel 과 연관이 있다는 것을 확인했습니다. 

@Composable
fun ComposeFunction(
	navController: NavController,
	viewModel: MainViewModel = viewModel()
) { 
	...
}

이러한 방식으로 ViewModel을 주입해 주었는데, 여기서 문제가 발생했다는 것을 파악했습니다. 

위의 방식으로 ViewModel 주입은 hilt를 사용하지 않는 경우에 사용하는 것이고, 

hilt를 사용하는 경우에는 @HiltViewModel 을 사용하는데, 이 경우에는 위와 같은 방식으로 코드를 작성하면 에러가 발생하게 됩니다. 

 

implementation "androidx.hilt:hilt-navigation-compose:1.1.0-alpha01"
@Composable
fun ComposeFunction(
	navController: NavController,
	viewModel: MainViewModel = hiltViewModel()
) { 
	...
}

위처럼 코드를 추가해 주면, ViewModel이 정상적으로 주입된 것을 볼 수 있습니다. 

 

 


추가! 

이 때는 Sdk version을 33 이상으로 올려주면 됩니다!

 

 


Compose를 공부하고 있는데, 배워야 할 것들이 참 많네요..!! 

하루빨리 Compose 고수가 되고 싶습니다 ㅎㅎ 

 

 

읽어주셔서 감사합니다