天天看点

Android Studio打包发布Flutter安卓应用

打包发布安卓应用主要有5步,

修改android/app/src/main/AndroidManifest.xml

首先通过安卓模式打开项目

Android Studio打包发布Flutter安卓应用

然后等待项目加载完成,出现下面情况为加载完成:

Android Studio打包发布Flutter安卓应用

如果出现异常可以参考这篇文章:启动 flutter项目时报Could not find com.android.tools.build:gradle:3.2.1.

然后修改APP对应的名字,也就是在手机桌面显示的应用名

Android Studio打包发布Flutter安卓应用

图标自定义我们可以修改

mipmap

下面的图标文件(建议右键

show in explorer

在文件夹中打开,然后再进行修改)

Android Studio打包发布Flutter安卓应用

修改和配置

build.gradle

文件

打开

app

build.gradle

修改兼容的安卓版本

Android Studio打包发布Flutter安卓应用

compileSdkVersion

:表示编译时的安卓版本

targetSdkVersion

:表示目标安卓版本

minSdkVersion

:表示最低兼容的安卓版本

如果要查看安卓版本对应的数字的话,可以点击

SDK Manager

进行查看:

Android Studio打包发布Flutter安卓应用

其他字段含义:

Android Studio打包发布Flutter安卓应用

签名APP

创建证书:

点击

Build-->Generate Signed Bundle/APK

Android Studio打包发布Flutter安卓应用

选择

APK

点击下一步:

Android Studio打包发布Flutter安卓应用

点击创建一个新的证书:

Android Studio打包发布Flutter安卓应用

输入信息即可创建证书:

Android Studio打包发布Flutter安卓应用

点击OK之后可能会出现报错,此处忽略即可:

Android Studio打包发布Flutter安卓应用

然后点击取消,即可看到我们创建的证书:

Android Studio打包发布Flutter安卓应用

新建一个

/android/key.properties

文件,配置如下内容:

Android Studio打包发布Flutter安卓应用
配置build.gradle

打开

build.gradle

文件,在

android

节点上面添加下面内容:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
           

如下:

Android Studio打包发布Flutter安卓应用

将下面内容

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}
           

替换为:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
           

效果如下:

Android Studio打包发布Flutter安卓应用
开启混淆

新建

/android/app/proguard-rules.pro

文件

添加以下规则:

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }
           
Android Studio打包发布Flutter安卓应用

build.gradle

文件的

release

节点下添加:

minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
           

用来启动混淆配置,

minifyEnabled

表示是否压缩

Android Studio打包发布Flutter安卓应用

构建一个发布版(release)APK

切换到flutter项目的根目录,执行

flutter build apk

即可打包成功。

常见问题及解决方法

解决问题 Cause: buildOutput.apkData must not be null

VScode+Flutter 开发继续踩坑

Flutter打包release版本安卓apk包真机安装无法请求网络的解决方法

Flutter中文网:https://flutterchina.club/android-release/