반응형
[Flutter 오류 해결기] Gradle 빌드 실패 & InAppWebView 컴파일 오류 정리
Flutter 앱을 개발하다 보면 다양한 에러와 마주치게 됩니다. 이번 포스팅에서는 Flutter 빌드 도중 발생한 Java 경로 문제, 플러그인 컴파일 오류, 웹뷰 연동 시 발생할 수 있는 문제를 어떻게 해결했는지 정리했습니다.
원인 발생 이유는 flutter 버전이 다른 환경 ( mac -> windows ) 로 프로잭트를 띄었을 때 문제가 발생했습니다.
flutter doctor --verbose
// 오류 처리 시 버전 확인을 필수로 확인하는 습관을 들여야겠습니다.
flutter doctor --verbose
- mac
Flutter SDK: 3.19.4
Dart: 3.3.2
플랫폼: mac
- Windows
Flutter SDK: 3.22.0
Dart: 3.2.3
플랫폼: Windows 11
문제 발생 시점: Windows11 의 Android 에뮬레이터 실행 중 flutter run
명령어 수행
1. Gradle Build 실패 - Java 경로 오류
에러 메시지:
Value 'C:Program FilesJavacorretto-17.0.15' given for org.gradle.java.home Gradle property is invalid (Java home supplied is invalid)
문제 원인:
Gradle이 사용할 Java 경로가 잘못된 형식으로 지정되어 있어 Flutter 앱이 빌드되지 않았습니다. 경로에서 백슬래시 \
가 빠져 있었습니다.
해결 방법:
방법 1: JAVA_HOME 환경 변수 수정
시스템 환경 변수
→JAVA_HOME
추가 또는 수정- 정확한 Java 설치 경로로 설정:
C:\Program Files\Amazon Corretto\jdk17.0.15
방법 2: gradle.properties 파일 수정
# android/gradle.properties 파일에 추가 또는 수정
org.gradle.java.home=C:\\Program Files\\Amazon Corretto\\jdk17.0.15
2. 플러그인 컴파일 에러 - flutter_inappwebview
❗ 에러 메시지 (요약):
error: cannot find symbol
import io.flutter.view.FlutterView;
^
symbol: class FlutterView
location: package io.flutter.view
FAILURE: Build failed with an exception.
> Compilation failed; see the compiler error output for details.
🔍 문제 원인:
flutter_inappwebview_android
버전 1.0.13은 최신 Flutter SDK와 호환되지 않는 레거시 API를 사용하여 컴파일 에러가 발생합니다.
해결 방법:
pubspec.yaml
에서flutter_inappwebview
버전을 최신으로 업그레이드:dependencies: flutter_inappwebview: ^6.0.0
- 플러그인 캐시 정리 및 재설치:
flutter clean flutter pub cache repair flutter pub get
3. InAppWebView 연동 코드 점검
작성된 homeScreen
코드에서 다음과 같은 개선사항이 발견되었습니다.
항목 | 수정 전 | 수정 후 / 설명 |
---|---|---|
클래스 명명 규칙 | class homeScreen | class HomeScreen – PascalCase 권장 |
전역 URI 변수 | final uri = Uri.parse(...); | 클래스 내부 또는 명확한 네이밍(_initialUri) |
불필요한 변수 | var uri = navigationAction.request.url!; | 삭제 가능 |
보안 고려 | evaluateJavascript 내부 JS 코드 인젝션 | FCM 토큰에 JS Escape 적용 가능 |
수정 예시:
class HomeScreen extends StatefulWidget {
final String? fcmToken;
const HomeScreen({super.key, required this.fcmToken});
@override
State createState() => _HomeScreenState();
}
4. Flutter 버전 다운그레이드 (3.19.4)
FVM 사용 – 추천 방법
- FVM 설치:
dart pub global activate fvm
- Flutter 3.19.4 설치 및 적용:
fvm install 3.19.4 fvm use 3.19.4
- 명령어 사용 시:
fvm flutter run
수동 설치 방법
- Flutter 3.19.4 공식 ZIP 다운로드
- 기존 Flutter SDK 교체 또는 새로운 경로에 압축 해제
- 시스템 환경 변수 PATH를 새 Flutter SDK의 bin 폴더로 설정
- 터미널에서 버전 확인:
flutter --version
마무리
이번 글에서는 아래 오류들을 해결했습니다:
- Gradle 빌드 실패 (Java 경로 문제)
- flutter_inappwebview 플러그인 컴파일 실패
- WebView 연동 코드 개선
- Flutter 버전 다운그레이드 방법
Flutter 환경은 버전에 따라 플러그인 호환성이 크게 달라질 수 있으니, 항상 SDK 버전과 의존성의 호환 여부를 확인하는 것이 중요합니다.
도움이 되셨다면 댓글로 알려주세요!
Flutter 관련 문제는 언제든지 생길 수 있으니, 여러분의 질문이나 경험도 댓글로 공유해주세요 😄

반응형
'오류 log' 카테고리의 다른 글
iOS에서 Flutter Firebase 푸시 알림 충돌? APNs 오류 해결 방법 (0) | 2025.05.16 |
---|---|
Flutter WebView에서 FCM 푸시 메시지가 안올 때? 실전 해결 과정 공유! (0) | 2025.05.13 |
mariaDB 한글 등록 시 오류 해결 _ Spring (0) | 2022.05.29 |
SPRING 어노테이션 등록 시 오류 _ ex) @service (0) | 2022.05.28 |