Flutter: ¿Cómo cambiar Android minSdkVersion en Flutter Project?

Resuelto Maldus asked hace 54 años • 29 respuestas

Estaba intentando iniciar un proyecto de aleteo para una aplicación que usa Bluetooth para comunicarse. Para eso, estaba usando flutter blue .

Desafortunadamente, al intentar ejecutar (en un dispositivo Android) el primer ejemplo que creé, me encontré con el siguiente error:

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)

Si estuviera en Android Studio, sabría cómo mejorar Android minSdkVersion, pero en un proyecto Flutter (usando VSCode) estaba un poco perdido.

¿Es posible aumentar minSdkVersion con Flutter y cómo?

Maldus avatar Jan 01 '70 08:01 Maldus
Aceptado

De hecho, es posible aumentar minSdkVersion, pero me tomó demasiado tiempo descubrirlo porque las búsquedas en Google arrojan principalmente como resultado discusiones sobre la versión mínima absoluta de Sdk que flutter debería poder admitir, no cómo aumentarla en su propio proyecto. .

Como en un proyecto de Android Studio, debes editar el build.gradlearchivo. En un proyecto de aleteo, se encuentra en la ruta ./android/app/build.gradle.

El parámetro que debe cambiarse es, por supuesto, minSdkVersion 16aumentarlo a lo que necesita (en este caso 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"
}

Ahora parece obvio, pero me llevó bastante tiempo descubrirlo por mi cuenta.

Maldus avatar Aug 28 '2018 14:08 Maldus

Flutter 2.8 o posterior

build.gradleactualizar

Antes de actualizar a Flutter 2.8

android {
    compileSdkVersion 30

defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 21
    targetSdkVersion 30
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    multiDexEnabled true
}

Después de actualizar a Flutter 2.8:

android {
    compileSdkVersion flutter.compileSdkVersion

defaultConfig {
        applicationId "com.example.app"
        minSdkVersion flutter.minSdkVersion
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

Debes cambiar de local.propertieslas siguientes instrucciones:

  1. Primero vaya a android->local.properties

ingrese la descripción de la imagen aquí

  1. Y los cambios desde aquí

ingrese la descripción de la imagen aquí

  1. Cambie así desde 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
}
Jahidul Islam avatar Dec 11 '2021 15:12 Jahidul Islam