本文始发于:https://zepo.re/archives/flutter-build-exploration
flutter项目打包步调及踩坑
1、下载、配置Flutter
下载Flutter
国内访问Flutter大概率会被限定住的,China Flutter User Group (CFUG) 维护着一个 Flutter 简体中文网站以及镜像,这里有一篇关于在中国网络环境下使用 Flutter的文章:在中国网络环境下使用 Flutter | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter
如果在国内要下载Flutter,可以在CFUG这里维护的版本列表下载:版本列表 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter
配置国内镜像
国内访问Flutter大概率会被限定住的,所以我们要手动指定镜像地址,修改系统环境变量:
- export PUB_HOSTED_URL=https://pub.flutter-io.cn
- export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
复制代码
追加环境路径变量
选择Flutter版本的时候更多的是看Dart的版本,有些项目中指定了Dart版本的范围,太高版本的Dart可能用不了
将在上面版本列表中下载的Flutter解压到非管理位置,然后将该全路径追加到环境变量中的Path变量中
测试Flutter
配置完成之后,重开一下CMD,在任意路径下实行flutter --version,能看到版本号就阐明正常了
2、下载Android Studio
打包Android APK的时候必要用到相关的依赖,就可以利用Android Studio,缺啥依赖勾上就行
下载Android Studio的时候,必要提前确保自己有科学上网的环境:developer.android.com/studio?hl=zh-cn,一直“下一步”走下去即可,因为是公司电脑所以能勾选的都勾上了
因为我接纳的是标准安装,也就是默认的方式,并不知道SDK会放在哪里,所以必要在设置内里找:
之后就可以在环境变量中把全路径设置为变量ANDROID_HOME的值
3、利用flutter doctor查看环境情况
打开一个新的下令提示符或PowerShell窗口并运行下令flutter doctor可以查看是否必要安装任何依赖项来完成安装:
一般按照上面的步调做完就OK了,如果出现Visual Studio/ IDEA报✗的情况也无所谓,如果有报错,根据相关提示解决即可
如果是Andruid Studio / Android toolchain那里的错误,就必要检查上一步的环境变量是否设置了ANDROID_HOME,或者有缺少的依赖没有勾选
4、下载VS Code
Android Studio运行占用的资源比较大,所以一般代码直接在常用的编辑器上写就行,多数人推荐使用VS Code,但个人实测VS Code不如IDEA,有时候要按照内容搜索文件的时候,IDEA很容易就可以做到
5、实行打包下令
Flutter打包安卓APK的下令是flutter build apk
6、更换对应的key
在项目标android/key.properties中,一般storeFile 路径指向的密钥库文件
由于是 Gradle 项目,学过的话可能会比较认识
7、检查kotlin_version、minSdkVersion
一般在android\app\build.gradle中对项目编译最小SDK版本和所使用打包的SDK版本会有所规定,如果下载AS的时候没有下载对应的API,必要在More Actions > SDK Manager中补充下载
如果出现Kotlin与Gradle不兼容的报错
可以联合Gradle与Flutter的兼容性表:
父目录中的android\build.gradle一般会规定对应的kotlin_version,修改即可:
8、切换flutter版本
pubspec.yaml中environment > sdk限定了dart的版本,
对照Flutter的版本列表举行下载:
下载完之后只必要将新的bin目录更换掉之前环境变量中设置的Path变量即可
9、Gradle缓存导致一直报Kotlin版本问题
在第七步修改之后还一直出现
查看上面的重要非常如下:
- e: C:/Users/Zepore/.gradle/caches/transforms-3/e6134980be5cc682036b443eef52b6ca/transformed/core-1.9.0/jars/classes.jar!/META-INF/core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1.
- e: C:/Users/Zepore/.gradle/caches/transforms-3/07b0e9b3aebb2992f89d3bc720c84e20/transformed/lifecycle-runtime-2.6.1/jars/classes.jar!/META-INF/lifecycle-runtime_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.5.1.
复制代码 可以发现基本上来自于Gradle的缓存,确定好这一点以及Gradle与Flutter的版本兼容,直接将缓存目录给删除,果然,一下子就解决了,打包也很快( •̀ ω •́ )✧
满意这个问题重要有两个特征:
- 不管版本高低都同一说Kotlin必要升级到最新
- 报错的位置都来自于缓存目录
本文始发于:https://zepo.re/archives/flutter-build-exploration
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |