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

不幸的是,当试图运行(在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与颤振,以及如何?


当前回答

在当前版本的flutter(2.10.4)中,您应该通过进入 Flutter sdk文件夹/packages/打开flutter_tools打开/gradle然后打开Flutter。gradle和找到静态int minSdkVersion并根据需求更改

例句: C: \ Workspace \ \ \ flutter_tools \ gradle包\ flutter.gradle摇曳

其他回答

将您编译的sdk版本升级到29或更高

希望这对你有所帮助。

2.8或以上

构建。gradle更新

在更新到Flutter 2.8之前

android {
    compileSdkVersion 30

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

更新到Flutter 2.8后:

android {
    compileSdkVersion flutter.compileSdkVersion

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

你应该从慢车转车。以下属性说明:

首先进入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
}

我发现解决这个问题的最好方法是通过改变颤振的设置,让它在未来的所有应用程序中都能全局执行。Gradle文件位于您的默认构建部分。如果你使用VSCode

转到此位置(或已安装颤振的位置) C: \ src \ flutter_tools \ gradle \ \颤振\包 拖动颤振。gradle文件到VSCode 更新最小值、编译和/或目标版本 保存

第一次运行 颤振清洁

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

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

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

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

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

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

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