打包之前需要先不配置不然会报错 Execution failed for task ‘:app:mergeReleaseResources’.

 1APP目录下的build.gradle
 2
 3aaptOptions.cruncherEnabled = false
 4    aaptOptions.useNewCruncher = false

如图

配置targetSdkVersion 、minSdkVersion

 1在android/app/src目录下的build.gradle配置
 2在这两个地方配置就可以 比如安卓应用商店是安卓targetSdkVersion api 30
 3
 4defaultConfig {
 5        applicationId "com.example.tianxi_user"
 6        minSdkVersion flutter.minSdkVersion //最低兼容的安卓版本,flutter中默认是16
 7        targetSdkVersion flutter.targetSdkVersion //应用适配的安卓版本 flutter中默认是33
 8        versionCode flutterVersionCode.toInteger()
 9        versionName flutterVersionName
10         ndk {
11            //设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)
12            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"
13            // biFilters "armeabi", "armeabi-v7a", "arm64-v8a","x86","x86_64"
14        }
15    }

或者去flutter安装目录中去配置 一劳永逸

 1flutter\packages\flutter_tools\gradle
 2flutter.gradle 修改这里的配置
 3
 4
 5class FlutterExtension {
 6    /** Sets the compileSdkVersion used by default in Flutter app projects. */
 7    static int compileSdkVersion = 33
 8
 9    /** Sets the minSdkVersion used by default in Flutter app projects. */
10    static int minSdkVersion = 16
11
12    /** Sets the targetSdkVersion used by default in Flutter app projects. */
13    static int targetSdkVersion = 33
14
15    /**
16     * Sets the ndkVersion used by default in Flutter app projects.
17     * Chosen as default version of the AGP version below as found in
18     * https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp
19     */
20    static String ndkVersion = "23.1.7779620"
21
22    /**
23     * Specifies the relative directory to the Flutter project directory.
24     * In an app project, this is ../.. since the app's build.gradle is under android/app.
25     */
26    String source
27
28    /** Allows to override the target file. Otherwise, the target is lib/main.dart. */
29    String target
30}

使用自定义证书签名打包

 1使用 keytool 生成签名证书,placement certificate
 2keytool -genkey -v -keystore xxx(项目名).keystore -alias xxx(项目名) -keyalg RSA -keysize 2048 -validity 10000 -storepassstorePassword密码-keypasskeyPassword密码
 3
 4根据提示生成证书keystore
  • 将 text.keystore 文件放到 android/app/ 目录下。
  • 编辑 android/app/build.gradle,添加 signingConfigs:
 1android {
 2  ...
 3  signingConfigs {
 4    release {
 5      keyAlias 'text'
 6      keyPassword '***' 
 7      storeFile file('text.keystore ')
 8      storePassword '***'
 9    }
10  }
11  buildTypes {
12    ...
13    release {
14      signingConfig signingConfigs.release
15    }
16  }
17}

填入 keystore 的密码。

最后使用 flutter build apk —release 进行签名打包。

只打包32/64

现在很多安卓应用商店只支持64位 安卓api30以上的。这里要调整下
只支持64位:flutter build apk —target-platform android-arm64

支持32位:flutter build apk —target-platform=android-arm
同时支持64位和32位:flutter build apk

报错Could not create task ‘:flutter_plugin_android_lifecycle:generateDebugUnitTestConfig

 1在Android Studio中 打开安卓目录
 2修改文件,把下面代码注释在flutter中运行的时候放开
 3
 4
 5subprojects {
 6//    // 把这行注释掉,在flutter运行的时候,记得取消这行的注释
 7//    project.buildDir = "${rootProject.buildDir}/${project.name}"
 8}
个人笔记记录 2021 ~ 2025