[Fix] flutter gradle 에러(Support in stable release: 3.16.0 Recommended in stable release: 3.19.0)

KoEunseo·2024년 2월 25일
2

fixErr

목록 보기
23/23
post-custom-banner

Deprecated imperative apply of Flutter's Gradle plugins

작년에 했던 프로젝트 서버가 닫혀서 파이어베이스로 서버를 갈음해보려고 간만에 프로젝트를 열었다.

그런데 빌드도 안되고 에러가 발생했다.
관련 링크를 제공해주길래 들어가봤다.

https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply

플러터 그레이들 플러그인이 devricated 되었다고 함.
하라는대로 하면 된다.
그래도 정리를 좀 해보자면...

Migration 하기

android/setting.gradle

싹 지우고 아래 코드를 복붙한다.
그리고 plugins에서 'agpVersion', 'kotlinVersion'을 내 프로젝트에서 쓰던 버전으로 붙여넣는다.

pluginManagement {
    def flutterSdkPath = {
        def properties = new Properties()
        file("local.properties").withInputStream { properties.load(it) }
        def flutterSdkPath = properties.getProperty("flutter.sdk")
        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
        return flutterSdkPath
    }
    settings.ext.flutterSdkPath = flutterSdkPath()

    includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "{agpVersion}" apply false
    id "org.jetbrains.kotlin.android" version "{kotlinVersion}" apply false
}

include ":app"
  • agp, kotlin 버전은 build.gradle에 있다.

본문을 더 읽어보면

android/build.gradle에서 아래 블록을 삭제하라고 한다.

여기서 코틀린 버전과 agp 버전을 찾을 수 있었다.

-buildscript {
-    ext.kotlin_version = '{kotlinVersion}'
-    repositories {
-        google()
-        mavenCentral()
-    }
-
-    dependencies {
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-    }
-}

플러터 문서에서는 위 코드와 같이 나와있지만 필자는 dependencies에 agp classpath도 함께 있었다.

classpath 'com.android.tools.build:gradle:7.3.0'

내 settings.gradle

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "7.3.0" apply false
    id "org.jetbrains.kotlin.android" version "1.7.10" apply false
}

android/app/build.gradle

이부분은 필자의 코드와는 많이 달랐다. 어떤 코드는 삭제하고 어떤 코드는 추가하라는데 이미 있는 코드였음. 삭제하라는 코드도 없었다.

이제 flutter run 해서 확인해본다.

Do you want to continue with adding multidex support for Android? 이렇게 나와서 y 해주었다. 그랬더니 gradle 빌드를 다시 하면서 앱이 실행된다.

profile
주니어 플러터 개발자의 고군분투기
post-custom-banner

0개의 댓글