해결된 질문
작성
·
322
·
수정됨
2
Flutter version 이 3.22 버전을 사용 중인데, minSdkVersion 에러가 나는 분들이 있을 것입니다.
[에러 상황]
firebase 프로젝트 준비 및 google-services.json 주입을 마치고, flutter 명령어로 first base에 필요한 패키지를 다운로드 받은 이후의 상황입니다. main.dart 를 실행하는데 아래와 같은 에러가 발생하는 분들은 주목하세요.
Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [:firebase_auth]
위와 같은 에러가 발생하는 분들은 아마 앱 레벨의 build.gradle이 이와 같이 설정되어있을 겁니다.
defaultConfig {
applicationId = "com.example.bucket_list_with_firebase"
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
}
위 메시지를 해석하면 firebase_auth가 minSdkVersion이 23 이상을 지원하는데, 현재 너의 프로젝트의 minSdkVersion은 21이 되어있어서 지원이 불가능하다는 메시지입니다.
[에러 원인]
이는 flutter sdk에서 android의 minSdkVersion이 21로 설정되어있기 때문에 그렇습니다. 실제로 강의자료에 나와있듯이 flutter sdk의 flutter.groovy 파일을 살펴보면
class FlutterExtension {
public final int compileSdkVersion = 34
public final int minSdkVersion = 21
// 다른 변수들
}
이처럼 21 버전을 상수값으로 사용하고 있는 것을 알 수 있습니다. 하지만 firebase의 auth 기능을 사용하려면 minSdkVersion이 23이어야 합니다.
[해결 방법]
이를 해결하기 위한 방법은 터미널 로그에 잘 표시되어있습니다.
The plugin firebase_auth requires a higher Android SDK version.
Fix this issue by adding the following to the file
android {
defaultConfig {
minSdkVersion 23
}
}
Following this change, your app will not be available to users running Android SDKs below 23.
위에 로그에서 recommend 하듯이 내 flutter project의 minSdkVersion을 바꿔주면 해결됩니다.
flutter.minSdkVersion 대신 상수로 23 값을 입력하면 됩니다.
defaultConfig {
// applicationId
minSdk = 23
// 다른 설정 값들
}
[해결 완료 후 동작 확인]
아래와 같이 main.dart를 실행하면 로그인 화면이 정상적으로 보여져야 합니다.
답변 1
1
안녕하세요.
상세한 문제 설명 및 해결책을 공유해 주셔서 감사합니다.
Firebase 공식 문서를 확인해 보니 Authentication version 23.0.0 부터 minSdkVersion이 23으로 올라갔네요. 강의 자료에 5회차 Android Firebase 설정 파트에 minSdkVersion를 23으로 수정해 두었습니다.
제보 감사합니다 🙇🏻♂️