728x90
728x90
SMALL
귀하의 앱 2개가 Google Play의 대상 API 수준 요구사항의 영향을 받습니다
앱 2개가 이전 버전의 Android를 타겟팅하는 것으로 확인되었습니다. 사용자에게 안전하고 보안이 유지되는 환경을 제공하기 위해 Google Play의 모든 앱은 2024. 8. 31. 전에 대상 API 수준 요구사항을 충족해야 합니다.
구글에서 메일이 왔다..!
728x90
현재 구글에서 권고하는 앱 Target API 요구 수준은 Android 14(API 수준 34)이다 ㅜㅜ
Flutter로 제작된 Andorid App이었는데 덕분에 오랜만에 intellij를 켜고,
targetSdk 34
targetsdk를 변경하고 Build를 진행했으나,
그럼 그렇지 근 1년만에 꺼낸 프로젝트가 바로 빌드될리가 있나^^
You are applying Flutter's app_plugin_loader Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block:
https://flutter.dev/go/flutter-gradle-plugin-apply
You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block:
https://flutter.dev/go/flutter-gradle-plugin-apply
그래서 만나게된 오류는 바로 이거 였다.
해결 방법은 아래와 같으며 링크를 클릭하면 친절하게 작성된 Document를 이용해 해결할 수 있었다 ㅎㅎ
1. 버전 확인
- andorid/build.gradle
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
1. ext.kotlin_version
2. 'com.android.tools.build:gradle:{version}'
이렇게 2가지의 버전을 잘 적어둘 것
2. setting.gradle 수정
- andorid/settings.gradle
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
}()
includeBuild("$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"
1. {kotlinVersion} = ext.kotlin_version
2. {agpVersion} = 'com.android.tools.build:gradle:{version}'
각각 사용할 버전으로 변경!
ex) "{apgversion}" > "7.3.0"
3. android/build.gradle 수정
- andorid/build.gradle
[결과 화면]
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
[삭제할 코드]
buildscript {
ext.kotlin_version = '1.7.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
위 코드를 삭제
결과화면과 유사한 코드로 남아있어야함
4. app/build.gradle 수정
- app/build.gradle
[결과 화면]
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
android {
// 생략
}
flutter {
source '../..'
}
[삭제할 코드]
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.")
}
apply plugin: 'com.android.application'
apply plugin: 'com.jetbrains.kotlin.android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
1, 2번 박스 코드 모두 삭제
dependencies {} 의 경우 <implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"> 만 삭제,
implementation이 삭제할 내용 1개 라면 dependencies 모두 삭제 가능
결과화면과 유사한 코드로 남아있어야함
이외에
- Google 모바일 서비스 및 Crashlytics
를 사용하는 경우 추가 수정내용이 있지만 이는 생략!
물론 위 사항을 고치고 난 후에도 ndk location 수정..
Namespace not spectified 오류 등 여러 부분을 수정해야했지만 잘 마무리 하고 빌드에 성공했다 :)
728x90
728x90
LIST