Flutter Mac 打包 Android apk

1,130

开发环境

准备工作 Android Studio 以及 Android SDK 下载

前往 developer.android.google.cn/studio/ 下载。

Android Studio 安装完成后,打开设置下载如下几个 Android SDK

image.png

1 生产应用程序签名

~/[path]/key.jks 把[path]换成自己想要存放的路径

keytool -genkey -v -keystore ~/[path]/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

2 修改 key.properties

路径:/android/key.properties

storePassword=1234567890 //创建签名时输入的密码
keyPassword=1234567890 //创建签名时输入的密码
keyAlias=key
storeFile=/Users/stephen/Flutter/key.jks // 签名存放的路径

3 修改 build.gradle

路径:/android/app/build.gradle

找到 android {} 配置在此之前添加如下代码

// 新增打包配置
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

在 android {} 配置中添加如下代码

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

4 执行打包

flutter build apk

根据控制台输出路径,对应文件夹下的几个 apk 都可以 image.png

附录

问题1 [!] No Android SDK found. Try setting the ANDROID_HOME environment variable.

image.png 根据错误提示判断是 Android SDK 环境变量配置问题,找到正确的Android SDK 路径,Copy 路径执行命名

export ANDROID_HOME=/Users/stephen/Library/Android/sdk

问题2 Run path/to/sdkmanager --install "cmdline-tools;latest"

image.png 根据错误提示是因为缺少 Android SDK cmdline-tools,需要根据如下路径进行安装

image.png

问题3 Execution failed for task ':app:compileFlutterBuildRelease'.

image.png 出现如图的错误提示,是项目在windows系统下的缓存所致,需要执行以下命令,清除项目中的设置缓存

flutter clean

然后执行打包命令就正常了

flutter build apk

问题4 Exception in thread "main" java.net.ConnectException: Operation timed out (Connection timed out)

根据提示显示操作超时了,其实就是 android/gradle/wrapper/gradle-wrapper.properties 文件中 配置的 distributionUrl 网络资源请求超时。那我们就去下载这个文件到本地 https://services.gradle.org/distributions/gradle-7.4-all.zip,然后根据本地文件的路径替换 distributionUrl 地址

image.png

参考链接

juejin.cn/post/691447… juejin.cn/post/696063…