Flutter 환경 복구 런북
auto_schedule_app · 개발환경 복구

Flutter 빌드 환경 복구 런북

SSH 접속 정비부터 Flutter SDK 교체, JDK 17 충돌 해결까지 — 디버그 APK 빌드 성공에 이르는 전 과정을 절차·명령어별로 기록했습니다.

2026-08-27 (KST) Windows 11 Flutter 3.41.2 Dart 3.11.0 ● 빌드 성공
app-debug.apk 빌드 완료 build\app\outputs\flutter-apk\app-debug.apk · ~142 MB
Flutter SDK
C:\Projects\fluttersdk
JDK
C:\jdk-17.0.20.101
Android SDK
…\AppData\Local\Android\sdk
Gradle assembleDebug
192.5s · exit 0
Part A — SSH 접속 정비
01

SSH 설정 점검 & 경로 불일치 발견~/.ssh/config

OpenSSH 9.1p1 확인. config에 서버 4대가 등록돼 있으나, 모든 IdentityFile이 존재하지 않는 C:\Users\modam\.ssh\를 가리켜 키를 찾지 못하는 상태.

bash · 진단
# 키 위치 확인 · config의 IdentityFile 경로
ls -la ~/.ssh
# → 키는 C:\Users\Elijah\.ssh 에 있는데
#   config는 C:\Users\modam\.ssh 를 참조 (경로 불일치)
발견등록 호스트 myserver · oci-server · oci2-server · hetz02-server — 키 경로가 modam 사용자 기준
02

modam 사용자 생성 & 키 배치관리자 PowerShell

config가 참조하는 C:\Users\modam\.ssh\가 실제로 존재하도록, 로컬 계정을 만들고 키를 그 경로에 복사.

powershell · 관리자 권한 필요
# 로컬 사용자 생성 (관리자 권한 필수 — 일반 창은 액세스 거부)
New-LocalUser -Name "modam" -NoPassword -Description "modam user"

# 키가 위치할 실제 경로 생성 + 복사 (개인키 이동 → 사용자 직접 실행)
New-Item -ItemType Directory -Force -Path C:\Users\modam\.ssh
Copy-Item C:\Users\Elijah\.ssh\* C:\Users\modam\.ssh\ -Recurse -Force
완료키·config·known_hosts가 C:\Users\modam\.ssh\에 배치됨
03

4개 서버 접속 검증config 별칭

경로가 해석되므로 짧은 별칭으로 전 호스트 접속 테스트 — 전부 성공.

bash · 검증
for h in myserver oci-server oci2-server hetz02-server; do
  ssh -o BatchMode=yes -o ConnectTimeout=10 "$h" "hostname; whoami"
done
✓ modam2024.cafe24.com  root      (up 63d)
✓ mdm01-server          ubuntu    (up 76d)
✓ oci2-server           ubuntu    (up 44d)
✓ mdm-hetz-svr02        root      (up 14d)
4/4모든 호스트 SSH 접속 정상
Part B — Flutter SDK 교체
04

옛 빌드 경로 정리C:\DEV_flutter → clean

프로젝트에 C:\DEV_flutter로 시작하는 경로가 133개 발견 — 전부 생성된 빌드 캐시(.dart_tool, build, .cxx)이며 소스에는 없음. 캐시를 손으로 치환하면 해시가 깨지므로, 정석대로 flutter clean으로 통째 제거.

bash · 캐시 초기화
flutter clean
Deleting build...            1,542ms
Deleting .dart_tool...          22ms
# 잔여 Gradle/Kotlin 에러 로그 2건도 삭제
rm -f android/.gradle/kotlin/errors/*.log android/.kotlin/errors/*.log
0건옛 경로 C:\DEV_flutter 참조 완전 제거
05

SDK 3.10.0 → 3.41.2 교체 & PATHC:\Projects\fluttersdk

기존 SDK는 Dart 3.0.0(3년 전)이라 프로젝트 요구치 Dart ^3.11.0을 못 맞춤. 설치본의 flutter_windows_3.41.2-stable.zip을 C:\Projects\fluttersdk에 풀고, 환경변수 PATH를 새 경로로 변경.

환경 전환
# PATH:  C:\fluttersdk\bin  →  C:\Projects\fluttersdk\bin
flutter --version
Flutter 3.41.2 • channel stable • Dart 3.11.0

flutter pub get
Got dependencies!
완료Flutter 3.41.2 / Dart 3.11.0 · CLAUDE.md 경로 메모 갱신
Part C — JDK 17 충돌 해결
06

Java 11 충돌 진단AGP requires Java 17

빌드가 Android Gradle plugin requires Java 17 … using Java 11로 실패. 핵심 함정: flutter config --jdk-dir·JAVA_HOME·flutter doctor가 모두 Java 17을 가리켜도, 온전히 설치된 Android Studio가 있으면 Gradle이 그 번들 jre(Java 11)를 우선해 계속 실패했다.

Flutter의 JDK 탐색 순서상 Android Studio 번들 JDK가 JAVA_HOME보다 앞이라, 번들 jre가 존재하는 한 지정이 무시됨.
07

근본 해결 — 번들 Java 11 제거 & JDK 17 지정해결

Android Studio를 제거하고 잔존 jre 폴더까지 삭제해 Java 11을 완전히 없앤 뒤, Flutter가 새 JDK 17을 쓰도록 지정. (Android SDK는 별도 경로라 빌드에 영향 없음.)

해결 절차
# 1) Android Studio 제거 + 잔존 Java 11 폴더 삭제
#    C:\Program Files\Android\Android Studio\jre  ← 수동 삭제

# 2) 새 JDK 17 지정 (전역 저장 → 재시동 후 유지)
flutter config --jdk-dir="C:\jdk-17.0.20.101"

# 3) 검증
flutter doctor -v
• Java binary at: C:\jdk-17.0.20.101\bin\java
• Java version   Temurin-17.0.20.1

# 4) 옛 Gradle 데몬 정리
cd android && ./gradlew --stop
해결Gradle이 Java 17로 구동 — Java 11 에러 소멸
08

디버그 APK 빌드 성공assembleDebug

bash · 최종 빌드
flutter build apk --debug
Running Gradle task 'assembleDebug'...      192.5s
√ Built build\app\outputs\flutter-apk\app-debug.apk
성공app-debug.apk (~142MB) 생성 · exit 0
런북 끝 · 재발 시 대응법은 memory/flutter-jdk17-config 에 기록됨