Flutter打包apk(windows环境)
创建签名
shellkeytool -genkey -v -keystore D:\workSpace\3_projects\personal\dutch\android\upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload其中,我将密钥文件生成到了项目根目录下的android文件夹下,通常情况下,密钥文件和配置文件不建议上传到git管理仓库,而android文件夹下的.gitignore也正好忽略了这二者的上传,所以我通常生成密钥文件就生成到android文件夹下

创建签名的时候,需要设置密钥库口令,后续配置文件中要使用
创建签名前会询问你姓名、所在城市什么的,直接回车忽略即可,询问填写的是否正确,输入y回车即可
upload的密钥口令我设置的与密钥库相同,所以按照提示直接按回车

创建配置文件:在项目的 android 目录下 创建一个名为 key.properties 的文件,内容如下:
propertiesstorePassword=上一步设置的密钥库 keyPassword=与密钥库口令相同 keyAlias=upload # 别名, 创建签名时 -alias参数 指定的值 storeFile=D:\\workSpace\\3_projects\\personal\\dutch\\android\\upload-keystore.jks # 密钥库的绝对路径,windows路径必须使用双反斜杠!!!storeFile的路径如上填写后,会有提示也需要将冒号转义(如下图),不必理会

添加签名配置:在 android/app/build.gradle.kts 文件中添加下面配置


- 代码添加的位置建议严格按照上面图片的位置
- 修改Gradle文件后,最好执行 flutter clean 命令清除缓存,防止其影响签名过程
开启开发者模式:设置 → 系统 → 高级 → 开发者选项

未开启开发人员模式构建apk时会报错
shellPlease enable Developer Mode in your system settings. Run start ms-settings:developers
构建apk:flutter build apk --release

- 构建成功,最终路径如上图,至于为什么还报错了,我就没细研究了,flutter小白一枚 😦
安装到Android手机
- USB连接设备到电脑上
- cd [project]
- flutter install
安装报错问题及解决方案(使用方案二解决问题)



构建apk并安装Android手机后,在涉及网络请求的页面报错
texClientException with SocketException: Failed host lookup: 'api.exchangerate-api.com' (OS Error: No address associated with hostname, errno = 7),uri=https://api.exchangerate-api.com/v4/latest/USDdebug模式正常是因为在debug包下的 AndroidManifest.xml 文件里声明了权限

所以在 android/app/src/main/AndroidManifest.xml 文件里也要加上权限,加上后再次构建apk并安装后即可解决
xml<uses-permission android:name="android.permission.INTERNET" />
参考文档