본문 바로가기
Flutter

Flutter 빌드 실패 Failed to build gradle [Flutter] Android

by 난타코다옹 2023. 11. 1.

목차

    아래 오류는 안드로이드 앱을 개발하면서 자주 만나게 되는 문제인 것 같아요!

    개발하면서 이런 오류를 자주 만나시죠? 😅

    Error

    A problem occurred evaluating project ':app'.

    해당 오류는 프로젝트의 build.gradle 파일에서 발생한 것 같아요.

    오류가 발생한 부분을 살펴보면 좋을 것 같아요.

    에러 발생 코드

    def localProperties = new Properties()
    def localPropertiesFile = rootProject.file('local.properties')
    if (localPropertiesFile.exists()) {
        localPropertiesFile.withReader('UTF-8') { reader ->
            localProperties.load(reader)
        }
    }
    
    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }
    
    def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
    if (flutterVersionCode == null) {
        flutterVersionCode = '1'
    }
    
    def flutterVersionName = localProperties.getProperty('flutter.versionName')
    if (flutterVersionName == null) {
        flutterVersionName = '1.0'
    }
    
    apply plugin: 'com.android.application'
    apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
    
    android {
        compileSdkVersion 28
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
            applicationId "com.example.app"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
        }
    
        buildTypes {
            release {
                // TODO: Add your own signing config for the release build.
                // Signing with the debug keys for now, so `flutter run --release` works.
                signingConfig signingConfigs.debug
            }
        }
    }
    
    flutter {
        source '../..'
    }
    
    dependencies {
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation 'com.android.support:multidex:1.0.3'
        implementation 'com.google.firebase:firebase-core:17.0.1'
        implementation 'com.google.firebase:firebase-firestore:20.2.0'
    
    }
    
    apply plugin: 'com.google.gms.google-services'

    위의 코드는 잘 작동하지 않아요. 왜 그럴까요? 😅

    해당 코드를 작동할 때 나오는 로그에요ㅎㅎ 같이 살펴볼까요?

    로그

    FAILURE: Build failed with an exception.
    
    * Where:
    Build file 'D:\Development\Projects\MyProjects\app\android\app\build.gradle' line: 24
    
    * What went wrong:
    A problem occurred evaluating project ':app'.
    > ASCII
    
    * Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Exception is:
    org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
            at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
            at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:204)
            at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
            at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:209)
            at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:61)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
            at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
            at org.

    위의 로그를 자세히 읽어보면 몇 가지 해결 방법을 추천해 주고 있네요~~ 😇

    우선, 이 에러가 발생한 원인부터 살펴봐요.

    원인

    build.gradle 파일에서 오류가 발생한 것 같아요. 로그를 읽어보면 24번째 줄에서 문제가 발생했다고 나와요.

    해당 코드를 살펴보면 ASCII 문자로 인해 오류가 발생한 것 같아요.

    그럼 어떻게 해결해야 할까요?

    몇 가지 해결책을 알려드릴게요 😎

    해결책

    1. 24번째 줄의 코드를 확인해보세요. ASCII 문자가 포함되어 있는지 확인해야 해요. 만약 ASCII 문자가 포함되어 있다면 해당 문자를 수정하거나 삭제해야 해요.
    2. flutter.sdkflutter.versionCode, flutter.versionName의 값을 확인해보세요. 정상적인 값으로 설정되어 있는지 확인해야 해요.
    3. flutter.gradle 파일이 제대로 로드되고 있는지 확인해보세요. 파일 경로가 정확하게 설정되어 있는지 확인해야 해요.

    결론

    이 문제는 안드로이드 앱을 개발할 때 build.gradle 파일에서 발생하는 문제인 것 같아요! 😅 이러한 오류는 파일 내에 ASCII 문자가 포함되어 있거나 파일 경로가 잘못 설정되어 있는 경우에 발생할 수 있어요.

    해당 코드를 주의깊게 살펴보고 ASCII 문자를 수정하거나 삭제하면 문제가 해결될 수 있어요!

    또는 minsdkversion 때문입니다! 

    앞으로.. 예방법!

    안드로이드 앱을 개발할 때 build.gradle 파일을 작성할 때는 ASCII 문자가 포함되지 않도록 주의해야 해요. 또한, 파일 경로를 정확하게 설정해야 오류가 발생하지 않아요.