Flutter : Flutter Project에서 Android minSdkVersion을 변경하는 방법은 무엇입니까?
저는 블루투스를 사용하여 통신하는 앱을 위한 플래터 프로젝트를 시작하려고 했습니다.그래서 저는 floating blue를 사용했습니다.
안타깝게도 (Android 기기에서) 첫 번째 예제를 실행하려고 할 때 다음 오류가 발생했습니다.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:flutter_blue] /home/maldus/Projects/flutter/polmac/build/flutter_blue/intermediates/manifests/full/debug/AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: use a compatible library with a minSdk of at most 16,
or increase this project's minSdk version to at least 19,
or use tools:overrideLibrary="com.pauldemarco.flutterblue" to force usage (may lead to runtime failures)
Android Studio에 있었다면 Android minSdkVersion을 어떻게 설치해야 하는지 알 수 있었을 텐데, Floating 프로젝트(VSCode 사용)에서 조금 길을 잃었습니다.
floating으로 minSdkVersion을 늘릴 수 있습니까?
minSdkVersion을 증가시키는 것은 실제로 가능하지만, 구글 검색은 당신 자신의 프로젝트에서 증가시키는 방법이 아니라 절대 최소 Sdk 버전 float에 대한 논의가 지원될 수 있어야 하기 때문에 대부분의 결과물을 산출하기 위해 너무 많은 시간이 걸렸습니다.
를 편집해야 합니다.build.gradle
파일에서 수 . floating 프로젝트에서, 그것은 경로에서 발견됩니다../android/app/build.gradle
.
변해야할는물론터파미,minSdkVersion 16
필요한 것에 맞춰 처리합니다(이 경우 19).
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.projectname"
minSdkVersion 19 //*** This is the part that needs to be changed, previously was 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
지금은 분명해 보이지만, 혼자 해결하는 데 시간이 충분히 걸렸습니다.
Float 2.8 이상
build.gradle
update
Float 2.8로 업데이트하기 전에
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.example.app"
minSdkVersion 21
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
}
Float 2.8로 업데이트한 후:
android {
compileSdkVersion flutter.compileSdkVersion
defaultConfig {
applicationId "com.example.app"
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
은 에서변야합에서 바꿔야 .local.properties
다음 지침:
- 먼저 Android->local.properties로 이동합니다.
- 그리고 여기서부터의 변화는
- build.gradle에서 이와 같이 변경합니다.
android {
compileSdkVersion localProperties.getProperty('flutter.compileSdkVersion').toInteger()
defaultConfig {
minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
모르는 경우 Google Playstore에서는 minSdkVersion을 20 이상만 허용합니다.그러나 Float는 여전히 기본 minSdkVersion을 16으로 설정했습니다.새 프로젝트마다 항상 수동으로 변경해야 한다는 것을 알 수 있습니까?
위의 모든 제안은 좋지만 최상의 제안은 아닙니다. 왜냐하면 새로 생성하는 각 프로젝트에 대해 build.gradle을 감수해야 하기 때문입니다.
가장 좋은 방법은 원본에서 글로벌 minSdkVersion 변수의 값을 수정하여 새 프로젝트든 이전 프로젝트든 모든 프로젝트가 이 변수를 채택하도록 하는 것입니다.minSdkVersion은 변수가 sdk와 함께 float 디렉토리에 있음을 의미합니다.
문제의 파일은 flooth.gradle입니다.
주소는 floatter-directory/flot/flot_tools/gradle/flot.gradle입니다.
class FlutterExtension {
/** Sets the compileSdkVersion used by default in Flutter app projects. */
static int compileSdkVersion = 31
/** Sets the minSdkVersion used by default in Flutter app projects. */
static int minSdkVersion = 16
/** Sets the targetSdkVersion used by default in Flutter app projects. */
static int targetSdkVersion = 31
minSdkVersion의 값을 16에서 20 이상으로 변경하고 build.gradle의 코드를 방해하지 마십시오.
원한다면 유튜브에서 제가 만든 동영상을 볼 수 있습니다. 아래에서 설명합니다: flatter configure minSdkVersion 16에서 20 또는 그 이상.
Floating v2.8용
inside local.properties 추가
sdk.dir='<path>'
flutter.sdk='<path>'
flutter.buildMode=debug
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.minSdkVersion=21
flutter.targetSdkVersion=30
flutter.compileSdkVersion=30
앱 수준 빌드.gradle
defaultConfig {
minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
이제 사용할 수 있습니다.localProperties.getProperty()
속성 파일에서 값을 읽습니다.
변경할 수 .minSdkVersion
Project_Name/android/app/build.gradle
,defaultconfig
:
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.projectname"
minSdkVersion 16 // <--- There
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
새로운 Flutter 프로젝트(2.8.0)와 'Flutter 스타일'을 사용하면 app/build.gradle 파일을 편집하는 대신 local.properties에서 최소 sdk 버전을 변경할 수 있습니다.
# android/local.properties
flutter.minSdkVersion=19
Android/app/build.gradle 파일을 보면 다음과 같은 변수 제약 조건을 볼 수 있습니다.
# android/app/build.gradle
android {
defaultConfig {
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
}
여기에서 MinSdk/Minsdk 버전 오류를 변경하기 위한 자세한 해결 방법은 단계를 따릅니다.
Android\local.properties에 다음 행 추가
sdk.dir=
flutter.sdk=C:\\flutter
flutter.buildMode=debug
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.minSdkVersion=21
flutter.targetSdkVersion=31
flutter.compileSdkVersion=31
기존 행을 삭제하고 앱 수준 build.gradle: Android\app\build.gradle에 붙여넣습니다.
defaultConfig {
applicationId "app-id"
minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
모든 답이 최선입니다.그러나 Flutter 2.8 이후에 SdkVersion을 변경하는 데는 다음과 같은 방법은 다음과 같습니다.
Float가 설치된 루트 디렉토리로 이동합니다.다음과 같아야 합니다.
C:\src\flutter\flutter
그럼 다음으로 이동
packages>Flutter tools>gradle>
Gradle에서 flooter.gradle을 찾을 수 있습니다. 마우스 오른쪽 단추로 클릭하고 텍스트 편집기/노트패드로 편집합니다.
여기에서 모든 SDK 버전을 찾을 수 있습니다.변경하고 저장한 후 사용할 준비가 되었습니다.
전체 경로는 다음과 같아야 합니다: (나의 경우)
C:\src\flutter\flutter\packages\flutter_tools\gradle
Android/local.properties 파일에 다음 행을 추가합니다.
flutter.versionCode=1
flutter.versionName=0.0.1
flutter.flutterMinSdkVersion=24
flutter.flutterTargetSdkVersion=31
파일의 최상위 수준에 다음 행을 추가하면 Android/app/build.gradle 파일의 "def versionName=" 뒤에 올 수 있습니다.
def flutterMinSdkVersion = localProperties.getProperty('flutter.flutterMinSdkVersion')
if (flutterMinSdkVersion == null) {
flutterMinSdkVersion = '16'
}
def flutterTargetSdkVersion = localProperties.getProperty('flutter.flutterTargetSdkVersion')
if (flutterTargetSdkVersion == null) {
flutterTargetSdkVersion = '31'
}
마지막으로 다음과 같이 일치하는 build.gradle 섹션을 편집합니다.
defaultConfig {
applicationId "do.main.subdomain" // Use your App ID
minSdkVersion flutterMinSdkVersion.toInteger()
targetSdkVersion flutterTargetSdkVersion.toInteger()
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
이 모든 것이 끝나면 당신은 가도 좋습니다.다음 번에 업데이트할 때는 하나의 파일만 변경하면 됩니다.
최근 이 문제가 발생했을 때의 접근 방식은 다음과 같습니다.
에 안에.<your-project>/android/app/build.gradle
Android -> defaultConfig -> minSdkVersion을 찾아 다음으로 바꿉니다.
minSdkVersion Math.max(flutter.minSdkVersion, 21)
여기서 21은 당신이 원하는 최소한의 버전으로 대체될 수 있습니다.
flatter가 최소 버전으로 23 또는 다른 상위 버전을 지원하기 시작하고 프로젝트에 대해 flatter를 업그레이드하기로 결정한 경우에도 작동합니다.
하여 다단에변니다합경따라를 변경합니다.minSdkVersion
문제.
> 첫번째=>YouProject_name/android/app/build.gradle
두 번째=> 기본 구성 {//안에서 찾을 수 있습니다.build.gradle
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.umair.product_details_using_crud"
minSdkVersion 16 // here you can change minSdkVersison
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
이 문제를 해결하는 가장 좋은 방법은 향후 모든 앱에서 전체적으로 수행될 수 있도록 기본 빌드 섹션에 있는 flot.gradle 파일의 설정을 변경하는 것입니다.VSCode를 사용하는 경우
- 이 위치(또는 float를 설치한 위치)로 이동합니다. C:\src\flutter\packages\flutter_tools\gradle\
- floatter.gradle 파일을 VSCode로 끌어다 놓습니다.
- 최소, 컴파일 및/또는 대상 버전 업데이트
- 절약하다
**android/local.properties**
flutter.versionCode=1
flutter.minSdkVersion=21
flutter.targetSdkVersion=30
flutter.compileSdkVersion=31
**android/app/build.gradle**
minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
Float 앱 내에서 Auth0, float_appauth 및 float_secure_storage를 설정하는 동안 이 문제가 발생했습니다.minSdkVersion을 변경한 후 이 오류가 발생했습니다.
C:\Users\myusername\AndroidStudioProjects\wole\android\app\src\debug\AndroidManifest.xml Error:
Attribute data@scheme at AndroidManifest.xml requires a placeholder substitution but no value for <appAuthRedirectScheme> is provided.
FAILURE: Build failed with an exception.
- 무엇이 잘못되었습니까?':app:processDebugManifest' 작업을 실행하지 못했습니다.
매니페스트 병합 실패: AndroidManifest.xml의 data@scheme 특성에 자리 표시자 대체가 필요하지만 에 대한 값이 제공되지 않습니다.
솔루션은 매니페스트 플레이스홀더를 추가하고 있습니다.
8.minSdkVersion, targetSdkVersion, compileSdkVersion . 이그라파은일에 your_flutter_app/android/app/build.gradle
경로는 다음과 같습니다.
다음과 같이 현재 값을 원하는 버전 번호로 바꾸기만 하면 됩니다.
이제 플래터 프로젝트를 실행해 보세요. 그게 다입니다.
아래에 설명된 local.properties 파일을 변경합니다.왜냐하면 현재 플레이스토어 업데이트 최소 대상 API 버전이 최소 30개 이상이기 때문입니다.
sdk.dir=/Users/sweetnandha/Library/Android/sdk
flutter.sdk=/Users/sweetnandha/FlutterDev/flutter
flutter.buildMode=debug
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.compileSdkVersion=32
flutter.minSdkVersion=21
flutter.targetSdkVersion=32
또는
[project_name]/android/app/build.gradle.defaultconfig의 기본 구성 안에 있습니다.
이것은 효과가 있었습니다.새 버전에서는 IDE에서 직접 변경할 수 있습니다. https://www.youtube.com/watch?v=ztjCMzBX18w
▁with다로 그 폴더를 찾을 수 .which flutter
( mac 또는 linux ) 또는 창에서 https://stackoverflow.com/a/304447/8122500 을 볼 수 있습니다. 그러면 @prefix-nduba-numbi의 가이드를 따를 수 있습니다.
변경할 수 있는 유형은 2가지가 있습니다.
flutter.gradle
future에 (여기서 권장 사항 변경)- 는또 에서 직접.
build.gradle
하지 않음장하지권않
사용해 보십시오.android/app/build.gradel
minSdkVersion 30
그것은 그것을 고쳐야 하지만 당신이 있는 것을 확실히 해야 합니다.kotlin_version = '1.6.10'
당신의 코틀린 버전으로.
현재 버전의 Flooth(2.10.4)에서는 Flooth sdk folder/packages/open flooth_tools open/gradle로 이동한 후 flooth.gradle을 열고 static int minSdkVersion을 찾아 요구 사항에 따라 변경해야 합니다.
예: C:\Workspace\flutter\packages\flutter_tools\gradle\flutter.gradle
defaultConfig { // TODO: 고유한 응용 프로그램 ID(https://developer.android.com/studio/build/application-id.html) 를 지정합니다.applicationId "com.example.map" minSdkVersion 19 targetSdkVersionflooter.targetSdkVersionCode.toInteger() 버전NameflooterVersionName}
컴파일된 sdk 버전을 29 이상으로 업그레이드합니다.
이것이 당신에게 도움이 되기를 바랍니다.
첫 번째 런은 깔끔하게 펄럭였습니다.
그런 다음 Project_Name/android/app/build.gradle, defaultconfig 파일에서 minSdkVersion을 변경합니다.
언급URL : https://stackoverflow.com/questions/52060516/flutter-how-to-change-android-minsdkversion-in-flutter-project
'source' 카테고리의 다른 글
스프링 부트에서 rest 컨트롤러가 작동하지 않음 (0) | 2023.08.05 |
---|---|
모듈 간 변수를 만드는 방법은 무엇입니까? (0) | 2023.08.05 |
발견되지 않은 오류: SECURITY_ERR: 쿠키를 설정하려고 할 때 DOM 예외 18 (0) | 2023.08.05 |
PowerShell을 통해 .cmd 파일 실행 (0) | 2023.08.05 |
오브젝티브-c/코코아 터치로 모듈로 작동하는 방법은 무엇입니까? (0) | 2023.08.05 |