虾扯蛋
随便谈谈:
不知道何时起移动开发的招聘要求上出现一则要求:会Android IOS;
然后招聘要求上又出现了一则要求:会React Native;
他们的共同点就是兼顾Android 与 IOS;
如果能做到一套代码,处处运行,那就最好不过啦!(当然不太现实)
于是乎flutter出来了2017年的IO大会上提出,就是想让一套代码跑两个地方;
flutter 特点:跨平台,高质量,热更新,更接近原生体验!(还有其他新特点特点跑linux,windows都是以后的设想啦)
个人PC
windows 10
core i5 8th
运行内存8g
相关链接
下图是我下载的几个版本:
windows 配置环境变量
这个应该很简单吧。解压下载下来的压缩包放到包含中文的目录中;
我这里是直接放在D盘根目录;
配置好了后,去命令行或者shell里面输入flutter 或者 flutter -h 验证下;
只要不是什么command not found 就行。
Android Studio 安装插件
根据官方文档:
-
启动 Android studio
-
左上角File->Setting;
-
搜索flutter,并安装,同时也会安装Dart语言
-
安装好了后,重启。有下图中两个图标就表示安装好了
-
配置flutter SDK
我这边输入了两次flutter 路径都失败了,第一次是直接使用上面提到的第二个链接,下面的第二张图是我开了v皮n(飞机),正在下的截图;
如果自己开了飞机,命令行输入 flutter upgrade 回车,就会有一个更新的东西出来了;
emm,最后还是失败了,再去看文档,也就是上面的第三个连接(中文网)
好吧,我继续配置环境变量:下图两个?
继续在命令行中查看:输入 flutter -version
然后听见电脑风扇转的飞起,赶紧打开任务管理器查看,后台在运行东西;
没有过一分钟,风扇没有声音了。。mmp,东西还没好,按了两下回车,然后有提示信息,继续输入 flutter upgrade,结果又卡在running pub upgrade;
突然听见风扇又转的飞起,检查了一下网络,每秒几百k,心里好像又踏实了一点,继续等。。。
等了两三分钟,风扇没声音了,网速也没了,心里不耐烦了,按回车,结果有信息了。。。
继续:看到下图描述
两个问题:
1. 需要安卓sdk 28.0.3
2. 安卓license status unknown (最后尝试多次是因为jdk版本不对,我用的是jdk10,换成8就好了。
差不多了,启动Android studio,上面说更新安卓sdk,就更新一下咯(真有耐心)
如果出现更新 sdk manager 失败
确保自己的java环境没问题,然后报下面的错误
Exception in thread “main” java.lang.NoClassDefFoundError:
解决——查看java 版本,我这里是jdk 10,重新下在一个8就好了(记得修改环境变量带来的影响)
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
换好了java版本后,命令行运行 flutter doctor
有两个提示:
- ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
- ! No devices available
这两个很好解决了: - 接受对应的licenses;输入指令: flutter doctor --android-licenses 然后根据提示信息输入 y 就行了
- 开一个模拟器,或者链接手机;
问题解决了继续输入 flutter doctor
看样子好像没什么问题了。启动as-new flutter - project
如果 create flutter project 时间很长。(两三分钟后)直接杀了程序,需文件夹检查一下是否帮你创建了对应的文件,如果是,重启as,这时直接打开自己新建的那个项目
以为这样就结束了?
新建后又是报错(看见有错误,不管不顾的点了 main.dart 运行,可能脑子抽了)
Got socket error trying to find package cupertino_icons at https://pub.dartlang.org.
报错了想法解决。。各种百度,一两分钟,竟然自己好了???
mmp哦,这尼玛什么鬼!!!
好了再好不过了,耐心等待;
竟然跑起来了!mmp耶,莫名其妙~就是这个心理,真的是莫名其妙!
总结
安装大致流程
- 下载配置flutter sdk,环境变量;
- Android studio 安装flutter ,Dart插件;
- Android studio 设置 flutter sdk路径;
问题
- 运行flutter upgrade 时卡很久
大致原因是网络问题,我这边开不开(v)飞(p)机(n)都一样;
解决:根据官方文档,设置两个环境变量; - 运行指令flutter doctor提示 Flutter requires Android SDK 28 and the Android BuildTools 28.0.3
解决:打开sdk manager 升级build tool - 运行指令flutter doctor提示 X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
解决:升级sdkmanager,命令行运行指令F:\sdk\tools\bin\sdkmanager --update - 升级sdk manager 失败
提示:Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
解决:a,请检查自己的java环境变量;
b,我自己是因为java jdk版本太高(10),换成jdk 8 就行了; - 运行指令flutter doctor提示! Some Android licenses not accepted.
解决:运行指令:flutter doctor --android-licenses,根据提示输入y就行; - 运行指令flutter doctor提示! No devices available
解决:新建模拟器或连手机; - 新建flutter project 的时候卡在 new flutter project 界面
解决:杀了as,检查workspace 内是否有那个项目,如果有直接在as中打开;
如果没有,检查flutter 配置,命令行运行flutter doctor 查看有什么问题; - 长时间卡在 Running pub upgrade… 不动了
解决:按一下回车试试,遇到了两三次都这么解决。。
如下图,开始只有红色框中的内容,按一下回车。后面马上打印了一长串内容;