본문 바로가기
오류 log

Gradle 빌드 실패 및 InAppWebView 오류? Flutter 앱 오류 해결 총정리

by Alan__kang__morlang 2025. 5. 30.
반응형

 [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 환경 변수 수정

  1. 시스템 환경 변수JAVA_HOME 추가 또는 수정
  2. 정확한 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를 사용하여 컴파일 에러가 발생합니다.

 해결 방법:

  1. pubspec.yaml에서 flutter_inappwebview 버전을 최신으로 업그레이드:
    dependencies:
      flutter_inappwebview: ^6.0.0
    
  2. 플러그인 캐시 정리 및 재설치:
    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 사용 – 추천 방법

  1. FVM 설치:
    dart pub global activate fvm
  2. Flutter 3.19.4 설치 및 적용:
    fvm install 3.19.4
    fvm use 3.19.4
  3. 명령어 사용 시:
    fvm flutter run

 수동 설치 방법

  1. Flutter 3.19.4 공식 ZIP 다운로드
  2. 기존 Flutter SDK 교체 또는 새로운 경로에 압축 해제
  3. 시스템 환경 변수 PATH를 새 Flutter SDK의 bin 폴더로 설정
  4. 터미널에서 버전 확인:
    flutter --version

 마무리

이번 글에서는 아래 오류들을 해결했습니다:

  • Gradle 빌드 실패 (Java 경로 문제)
  • flutter_inappwebview 플러그인 컴파일 실패
  • WebView 연동 코드 개선
  • Flutter 버전 다운그레이드 방법

Flutter 환경은 버전에 따라 플러그인 호환성이 크게 달라질 수 있으니, 항상 SDK 버전과 의존성의 호환 여부를 확인하는 것이 중요합니다.


 도움이 되셨다면 댓글로 알려주세요!

Flutter 관련 문제는 언제든지 생길 수 있으니, 여러분의 질문이나 경험도 댓글로 공유해주세요 😄

 

반응형