Flutter Mac 打包 Android apk
开发环境
准备工作 Android Studio 以及 Android SDK 下载
前往 developer.android.google.cn/studio/ 下载。
Android Studio 安装完成后,打开设置下载如下几个 Android SDK
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 都可以
附录
问题1 [!] No Android SDK found. Try setting the ANDROID_HOME environment variable.
根据错误提示判断是 Android SDK 环境变量配置问题,找到正确的Android SDK 路径,Copy 路径执行命名
export ANDROID_HOME=/Users/stephen/Library/Android/sdk
问题2 Run path/to/sdkmanager --install "cmdline-tools;latest"
根据错误提示是因为缺少 Android SDK cmdline-tools,需要根据如下路径进行安装
问题3 Execution failed for task ':app:compileFlutterBuildRelease'.
出现如图的错误提示,是项目在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 地址
参考链接
转载自:https://juejin.cn/post/7136912987389952014