Development record of developer who study hard everyday.

, ,

안드로이드 Unsupported metadata version. Check that your Kotlin version is >= 1.0 에러 해결 방법

Unsupported metadata version. Check that your Kotlin version is >= 1.0 해결방법

안드로이드 블로그

현재 SI업체에서 일하면서 제일 짜증나는게 과거 오래된 프로젝트를 유지보수하는 일이다.

예전 라이브러리가 많이 쓰여있고 코드도 옛날 스타일인데다가 그래들이나 코틀린 버전도 예전버전이다.

유지보수를 위해서 그래들을 올리고 targetSDK 버전을 올리면 온갖 에러가 발생한다....

그래들 버전을 올리면서 

Unsupported metadata version. Check that your Kotlin version is >= 1.0


에러가 발생했다.

코틀린 버전이 1.0 이상인지 확인해보라는데 나의 코틀린 버전은 1.6.10이다.

뚜껑이 열리는걸 참고 차분히 구글링을 해본다.

하지만 나오는 글들은 전부 hilt의 버전을 올리라는 이야기 뿐이다.

예를들어, 아래와 같은 자료를 찾았다.

Unsupported metadata version. Check that your Kotlin version is >= 1.0

하지만 내가 유지보수하는 프로젝트 소스에는 hilt가 쓰이지 않는다.

그러다가 "혹시 hilt 이전의 종속성주입을 사용하는 Dagger2 라이브러리의 버전이 관련되어있지 않을까?" 하는 생각이 떠올랐다.

그래서 위 자료처럼 코틀린 버전을 1.7.0으로 올리고 Dagger2 버전을 가장 최신버전인 2.45로 올렸다.

그랬더니 에러 로그가 달라졌다. ㅋㅋ

viewmodelprovider 'create' overrides nothing

위와 같은 에러가 발생했다.

override fun <T : ViewModel?> create(modelClass: Class<T>): T {
val creator = creators[modelClass]
//....


return try {
creator.get() as T
} catch (e: Exception) {
throw RuntimeException(e)
}
}
DaggerViewModelFactory를 정의하는 곳에서 create 메소드의 제네릭 타입이 잘 못되어서 그렇다.

<T : ViewModel?> 타입을 <T : ViewModel>로 바꿔주면된다.

이제 빌드에 성공했다.

참 힘들었다....

빨리 실력을 쌓아서 이 SI업체를 빠져나가야겠다!!


Share:
Location: 대한민국 서울특별시

댓글 없음:

댓글 쓰기