背景
目标是用android studio + flutter 跑hello world
下载
android studio
我下载的是2024.3.2.15版本
最新版下载首页就能下:下载 Android Studio 和应用工具 - Android 开发者 | Android Developers
历史版本可在归档列表下载:Android Studio 下载文件归档 | Android Developers
注意,打开归档列表没东西是因为网页为中文,把语言改成英文,滑动到最底下选择同意,就能看到归档列表了
flutter
我下载的是3.22版本
在归档列表可下载历史版本:归档列表 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter
版本
android studio: m版本
flutter sdk:3.22版本
android studio
不同版本会有差异,我用emulator运行项目,ladybug运行emulator会提示下载haxm,haxm在github才能下,国内访问github有时会访问不了。最后卸载了l版本,下载了m版本
flutter
刚开始下了最新版(3.32),发现和gradle,kotlin有些不兼容,提示要用gradle9.0以上版本,但gradle9.0又找不到包,调了半天,无果。
后来卸了,装了个3.22版本,调调能跑
困难
用flutter3.32+android studio m版本调了半天调不出来
配置
创建项目时flutter sdk path
创建flutter项目,会提示输入flutter sdk path,这里填环境变量配置的那个bin目录的上级目录就可以
环境变量
这俩必选要配,不知道配哪可配用户变量
这个可选配置,配flutter命令,配了可能方便些,任意cmd窗口都能执行flutter命令。找到flutter sdk的安装路径(解压路径),把bin目录绝对路径加到用户变量的path下
gradle
配置点如下,此处gradle版本是8.6,android studio版本是m
gradle下载源配国内镜像,如果用默认的services.gradle.org会超时
settings.gradle和build.gradle加上国内源,否则也可能超时
emulator
运行avd后可运行设备未显示emulator
检查android studio是否安装cmdl tools,在settings下sdk tools底下找到command line tools字样,若未安装则勾选,然后点确认或apply,点完了会弹窗下载,安装完comand line tools,退出android studio重新打开项目,重新运行avd,检查可运行设备是否显示avd
若还不行,可能licenses未接受,配了flutter环境变量前提下,打开一个cmd终端,输入flutter doctor --android-licenses 处理license是接受还是拒绝,完成后再重试检查是否能avd运行项目
项目运行
java和gradle版本不匹配
运行flutter doctor --verbose 检查android chain下面的build版本,即java版本,再对照java版本找合适的gradle版本。我用了java21,gradle最开始用了7.6,提示gradle和java版本不兼容,把gradle换成8.6就好了
可提升点
运行速度
emulator 用gradle构建很慢,可能电脑性能一般,或者下载各依赖软件太慢,可能都是在线下的,后续考虑此问题
其他问题
运行flutter项目报错不兼容 需要gradle9.0以上版本
检查flutter项目绝对路径是否有中文,如果有中文改成英文
flutter使用provider报错,提示Another exception was thrown: Tried to listen to a value exposed with provider, from outside of the widget tree.
将Provider.of<T>(context) 改为Provider.of<t>(context, listen: false)