일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 #코틀린 #코루틴 #콜백 #채널
- Flutter #Stream
- 도약전환
- flutter #dart #stream
- 플러터 #안드로이드 #플레이콘솔 #앱내리기
- 희망적금전환
- 조립 후 재부팅
- 청년도약계좌환승
- 도약계좌전환
- 도약연계
- 희망적금연계
- Flutter #Stream #dart
- Today
- Total
Flutter 개발 상자
[Flutter] flutter Unsupported class file major version 65 / flutter doctor java version 바꾸기 본문
[Flutter] flutter Unsupported class file major version 65 / flutter doctor java version 바꾸기
망고상자 2024. 12. 10. 00:35컴퓨터를 바꿨을 뿐인데
m4 맥미니 구매 이후 기존에 잘 돌아가던 프로젝트를 클론하였으나 많은 에러가 발생했습니다.
IOS쪽이 생각보다 빠르게 해결되고 안드로이드쪽이 상당히 많은 에러를 뱉어냈습니다.
Gradle쪽 오류가 무척 많았는데 8.x 버전은 도저히 에러 해결이 안되서 7.x 버전으로 다운그레이드를 하게되었습니다.
그리고나서 또다시 발생한 오류가 flutter Unsupported class file major version 65 에러입니다.
일단 안드로이드 폴더를 안드로이드 스튜디오로 열자
기존 플러터 터미널 창에서 아래의 명령어를 입력해서 안드로이드 폴더를 열어줍니다.
studio ./android
studio는 안드로이드 스튜디오를 통해서 해당경로의 프로젝트를 실행한다는 의미입니다.
안드로이드 폴더를 열고나서 해야할껀 크게 2가지
1. gradle-wrapper.properties 파일에서 에러가 발생하지 않는 gradle 버전을 찾아줍니다. 저같은 경우 7.6.3-bin.zip 버전이 오류가 발생하지 않았습니다.
2. setting - Build,Eex,De -> Build Tools -> Gradle 에서 Gradle JDK 버전을 알맞게 수정해줍니다. 프로젝트에 따라서 오류가 안나는 버전이 다 다르기 때문에 뭐가 적절할지는 알 수 없지만 현 시점에서 가장 대중적인픽은 JDK17 버전이라고 생각합니다.
자, 이렇게 하고나서 모든 에러가 해결되었다면
이렇게 폴더탐색기 위에 Android 항목이 뜨고 빌드가 가능한 상태가 되어야합니다.
우선적으로 이 안드로이드 프로젝트에서 빌드를 실행시켜서 잘되는지를 확인해봅니다.
보통 여기까지 진행되었다면 빌드가 되어야 정상입니다.
Flutter 프로젝트에서 빌드가 안되는 현상
이번에 처음 겪은 일인데
안드로이드 폴더를 열어서 빌드를 하면 정상실행되는데
플러터 프로젝트에서 빌드를 하면
flutter Unsupported class file major version 65
에러가 계속 발생했습니다.
분명 자바 버전의 문제같은데... 안드로이드 폴더는 실행이 되는데 플러터쪽에서 실행이 안된다는건
각자 참조하고 있는 JDK 버전이 다른게 아닐까 추측을 해보았습니다.
플러터에서 기본적으로 사용하는 JDK 버전을 확인하기 위해서
flutter doctor -v
터미널에서 실행을 해준 후에 android toolchain 항목에서 JDK 버전을 확인합니다.
저는 21버전으로 나왔는데 이를 JDK 17 버전으로 바꾸겠습니다.
brew install openjdk@17
다 받고나면 아마도 아래의 명령어를 추가로 입력하라는 메시지가 뜰겁니다.
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
시간이 지나면 위의 명령어가 아닌 다른 명령어로 바뀔수도 있으니 설치가 끝난 후 터미널 메시지를 유심히 확인합니다.
자 그러면 JDK17 버전과 이를 사용하기 위한 환경변수 세팅까지 끝났으니 Flutter의 기본 자바 경로를 수정해줍니다.
flutter config --jdk-dir /opt/homebrew/opt/openjdk@17/
수정이 끝났다면 다시 flutter doctor -v를 통해서 버전을 확인해줍니다.
이후에 다시 flutter로 프로젝트를 빌드하니 오류가 사라졌습니다.