관리 메뉴

나만을 위한 블로그

[Android] Your activity is not yet attached to the Application instance. You can't request ViewModel before onCreate call 에러 해결 본문

Android

[Android] Your activity is not yet attached to the Application instance. You can't request ViewModel before onCreate call 에러 해결

참깨빵위에참깨빵 2022. 5. 3. 21:11
728x90
반응형

이 에러는 뷰모델 선언을 onCreate() 밖에서 했기 때문에 발생하는 에러다. 에러를 한글로 번역해보면 무슨 뜻인지 안다.

 

활동이 아직 애플리케이션 인스턴스에 연결되지 않았습니다. onCreate 호출 전에 ViewModel을 요청할 수 없습니다

 

해결법은 그냥 뷰모델을 만드는 코드를 onCreate() 안에 넣으면 된다.

 

class CoinActivity : AppCompatActivity() {

    val TAG = this.javaClass.simpleName

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_coin)

        val viewModel: CoinViewModel = ViewModelProvider(this).get(CoinViewModel::class.java)
        .
        .
        .

 

이렇게 하면 에러는 사라진다. 단, 이것은 Dagger2나 Koin 같은 DI 라이브러리를 사용하지 않은 상태에서 발생한 에러다. DI 라이브러리를 사용했을 때 이 에러가 발생하면 일단 이렇게 해보고 안되면 따로 구글링해보자.

반응형
Comments