Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- LLM
- lifecycle
- ListView
- 자바스크립트
- 앱심사
- npm
- firebase
- Flutter
- java 콘솔 출력 차이
- unity
- 자바 포맷 출력
- scss
- JQ
- java 출력
- 엡
- println
- abap
- react
- 단축키
- develop
- UI/UX
- riverpod
- nodejs
- printf
- JS
- 자바 출력 방식
- DART
- Clean Architecture
- java
- 배포
Archives
- Today
- Total
guricode
Kotlin 컴파일 오류: metadata version mismatch 트러블슈팅 본문
Kotlin 컴파일 오류: metadata version mismatch 트러블슈팅
■ 문제 발생 배경
Flutter 3.22.1 기반 프로젝트에서 Firebase, Riverpod 등 다양한 라이브러리를 통합하고자 함.
Gradle Plugin 및 Kotlin 버전을 최신으로 맞추기 위해 다음 설정을 적용함.
- gradle:8.2.1
- kotlin_version = '1.9.24'
■ 문제 증상
flutter run 실행 시 다음과 같은 Kotlin 관련 컴파일 오류가 반복적으로 발생함:
Module was compiled with an incompatible version of Kotlin.
The binary version of its metadata is 1.9.0, expected version is 1.7.1.
또한 다음과 같은 SDK XML 경고도 동반됨:
Warning: This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered.
■ 원인 분석
Gradle 의존성 트리 상에서 일부 라이브러리가 Kotlin 1.9.x로 컴파일되어 있음에도,
내부적으로 여전히 Kotlin 1.7.x 버전을 참조하거나 충돌하고 있었음.
이는 Gradle이 여러 Kotlin 관련 라이브러리를 상호 호환성 없이 중복 로드하면서 발생하는 문제임.
■ 시도한 해결 방법
- android/build.gradle에서 ext.kotlin_version = '1.9.24' 명시
- app/build.gradle의 plugins 블록에 org.jetbrains.kotlin.android 명시
- .gradle 캐시 수동 삭제 시도 (taskkill, Remove-Item 등 활용)
- Gradle 8.4 관련 캐시 강제 제거
- Flutter SDK 재설치
- flutter clean 및 flutter pub get 반복 수행
모든 시도에도 불구하고 오류는 반복됨.
■ 최종 해결 방법
app/build.gradle에 아래 구문을 추가하여, 모든 Kotlin 관련 의존성의 버전을 강제로 통일함.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.jetbrains.kotlin') {
details.useVersion '1.9.24'
}
}
}
이 코드는 모든 Kotlin 의존성이 1.9.24로 강제되도록 하여, 버전 충돌을 사전에 방지함.
■ 향후 고려사항
- Flutter 프로젝트에서 Kotlin 관련 라이브러리를 추가할 때는 항상 Kotlin 버전 호환 여부를 명확히 확인해야 함.
- flutter pub outdated와 ./gradlew dependencies 명령어로 충돌을 미리 점검할 것.
- Kotlin 버전을 올릴 경우, build.gradle 외에도 plugins DSL, classpath 모두 일관성 유지 필요.
- 의존성 충돌 시에는 resolutionStrategy를 우선 고려할 것.
'앱 > Flutter&Dart' 카테고리의 다른 글
| Flutter SDK 버전 오류 트러블슈팅: Dart SDK 버전 불일치 (1) | 2025.08.08 |
|---|---|
| 트러블슈팅: CircleAvatar로 프로필 이미지 UI 구현 시 크기 제약 문제 (0) | 2025.08.07 |
| Riverpod 상태 변경 에러 트러블슈팅: Tried to modify a provider while the widget tree was building (1) | 2025.08.05 |
| BottomNavigationBar_Widget (1) | 2025.08.04 |
| Consumer_Riverpod (0) | 2025.08.01 |