source

Flutter : Flutter Project에서 Android minSdkVersion을 변경하는 방법은 무엇입니까?

ittop 2023. 8. 5. 11:01
반응형

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.gradleupdate

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다음 지침:

  1. 먼저 Android->local.properties로 이동합니다.

enter image description here

  1. 그리고 여기서부터의 변화는

enter image description here

  1. 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()속성 파일에서 값을 읽습니다.

변경할 수 .minSdkVersionProject_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

android\local.properties

기존 행을 삭제하고 앱 수준 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
}

enter image description here

모든 답이 최선입니다.그러나 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

In the image you can see SDKs

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를 사용하는 경우

  1. 이 위치(또는 float를 설치한 위치)로 이동합니다. C:\src\flutter\packages\flutter_tools\gradle\
  2. floatter.gradle 파일을 VSCode로 끌어다 놓습니다.
  3. 최소, 컴파일 및/또는 대상 버전 업데이트
  4. 절약하다
    **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 특성에 자리 표시자 대체가 필요하지만 에 대한 값이 제공되지 않습니다.

솔루션은 매니페스트 플레이스홀더를 추가하고 있습니다.

view image

8.minSdkVersion, targetSdkVersion, compileSdkVersion . 이그라파은일에 your_flutter_app/android/app/build.gradle경로는 다음과 같습니다.

enter image description here

다음과 같이 현재 값을 원하는 버전 번호로 바꾸기만 하면 됩니다.

enter image description here

이제 플래터 프로젝트를 실행해 보세요. 그게 다입니다.

아래에 설명된 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

enter image description here

또는

enter image description here

[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가지가 있습니다.

  1. flutter.gradle future에 (여기서 권장 사항 변경)
  2. 는또 에서 직접.build.gradle하지 않음장하지권않

사용해 보십시오.android/app/build.gradel minSdkVersion 30그것은 그것을 고쳐야 하지만 당신이 있는 것을 확실히 해야 합니다.kotlin_version = '1.6.10'당신의 코틀린 버전으로.

app/build.gradle 코드를 합니다.

현재 버전의 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

This is what you'll see in the flutter.gradle file

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

반응형