我正在尝试为一个使用蓝牙通信的应用程序启动一个颤振项目。我用的是颤振蓝。

不幸的是,当试图运行(在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,但在一个flutter项目(使用VSCode),我有点迷失。

是否有可能增加minSdkVersion与颤振,以及如何?


当前回答

当我最近遇到这个问题时,我是这样处理的:

在<项目> / android / app / build.gradle

找到android -> defaultConfig -> minSdkVersion并将其替换为

minSdkVersion Math . max(扑动。minSdkVersion, 21)

这里的21可以替换为你想要的最小版本。

如果flutter开始支持23或其他更高版本作为最低版本,并且您决定为项目升级flutter,那么它仍然可以工作。

其他回答

对于颤振v2.8

在当地。属性添加

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

app-level build.gradle

defaultConfig {
    minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()
    targetSdkVersion localProperties.getProperty('flutter.targetSdkVersion').toInteger()
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

现在可以使用localProperties.getProperty()从属性文件中读取值。

使用新的Flutter项目(2.8.0),使用“Flutter样式”,您可以在本地更改最小sdk版本。属性(而不是编辑app/build。gradle文件)。

# 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
  }
}

在android/app/build中试试这个。graddel minSdkVersion 30应该修复它,但要确保你的kotlin版本在kotlin_version = '1.6.10'。

第一次运行 颤振清洁

然后在Project_Name/android/app/build文件中修改minSdkVersion。Gradle, defaultconfig:

添加以下行到android/local。属性文件:

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 (flutterMinSdkVersion == null) {
    flutterMinSdkVersion = '31'
}

最后编辑构建的部分。Gradle匹配如下:

    defaultConfig {
        applicationId "do.main.subdomain" // Use your App ID
        minSdkVersion flutterMinSdkVersion.toInteger()
        targetSdkVersion flutterTargetSdkVersion.toInteger()
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

一旦所有这些都完成了,你就可以开始了。下次你想要更新一些东西时,你只需要更改一个文件。