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

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


当前回答

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

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

其他回答

defaultConfig { // TODO:指定您自己唯一的应用程序ID (https://developer.android.com/studio/build/application-id.html)。 applicationId“com.example.map” minSdkVersion 19 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger () versionName flutterVersionName }

从Flutter 2.8开始,设置minSdkVersion, targetSdkVersion和compileSdkVersion略有不同。现在gradle文件在your_flutter_app/android/app/build。Gradle路径是这样的:

只需将当前值替换为您想要的版本号,如下所示:

现在运行你的颤振项目,就这样。

使用新的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
  }
}

它在[project_name]/android/app/build.gradle的defaultconfig中找到。defaultconfig

如果你不知道,谷歌Playstore只允许minSdkVersion为20或以上。但是flutter仍然将默认minSdkVersion设置为16。您是否看到您将总是被迫为每个新项目手动更改?

以上所有建议都很好,但不是最好的,因为您将被迫调整构建。为你创建的每个新项目Gradle。

最好的方法是从全局minSdkVersion变量的源修改它的值,这样所有的项目,无论是新项目还是旧项目,都将采用它。记得颤振。minSdkVersion表示变量在flutter目录下(包含sdk)。

问题文件是flutter.gradle。

地址为:flutter-directory/packages/flutter_tools/gradle/flutter.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中的代码。

如果你愿意,你可以看我在Youtube上做的一个视频,在下面解释:颤振配置minSdkVersion从16到20或以上