Flutter环境搭建
Flutter环境的搭建过程中确实是遇到了不少坑,这里记录一下,以下内容均基于win10。
使用国内镜像
方便国内访问flutter
设置环境变量
PUB_HOSTED_URL :https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL:https://storage.flutter-io.cn
镜像不保证长期能用, 访问https://github.com/flutter/flutter/wiki,获取最新动态。
需要环境
Android Studio配置
- 第一次安装Android Studio,启动的时候可能会提示unable to access android sdk add-on list,这里是因为没有安装Android sdk, 我这里先点的cancle,进去之后再安装
点击进入SDk Manager,下载相关需求,我这里勾选的可能会有多的,但是必须的都有
- 安装Flutter和Dart plugins
- File > Settings > Plugins, 在Marketplace中找到Flutter,一般安装了flutter会自动安装dart。
Flutter检测
运行命令, 看一下还有哪些需要配置的东西没有通过
flutter doctor -v
我这里遇到的还有Android license status unknown. 这个问题
执行
flutter doctor --android-licenses
顺利的话一路按y就可以了,但是现实总是那么残酷
新的问题:
A newer version of the Android SDK is required. To update, run:
C:\Users\admin\AppData\Local\Android\Sdk\tools\bin/sdkmanager --update
run一下试试呗
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:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more
这错误越来越长, 查了下可能和java版本有关,新版本的java去掉了一些库, 我用的是java 13,网上说换成8就好了,但是我也是不想换(懒),在网上发现一篇教程https://www.wandouip.com/t5i325108/ , 安装一下去掉的库就行了,下面是所需库的下载链接。
activation.jar
jaxb-impl.jar
jaxb-xjc.jar
jaxb-core.jar
jaxb-jxc.jar
jaxb-api.jar
istack-commons-runtime.jar
下载后在Android\Sdk\tools目录下创建文件夹jaxb文件夹,将jar文件放进去,可以把jar文件名称中的版本号去掉。然后把路径添加到Android\Sdk\tools\sdkmanager.bat文件中,如下
set CLASSPATH=%APP_HOME%\jaxb\activation.jar;%APP_HOME%\jaxb\jaxb-impl.jar;%APP_HOME%\jaxb\jaxb-xjc.jar;%APP_HOME%\jaxb\jaxb-core.jar;%APP_HOME%\jaxb\jaxb-jxc.jar;%APP_HOME%\jaxb\jaxb-api.jar;%APP_HOME%\jaxb\istack-commons-runtime.jar;%APP_HOME%\lib\dvlib-26.0.0-dev.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\repository-26.0.0-dev.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\layoutlib-api-26.0.0-dev.jar;%APP_HOME%\lib\gson-2.3.jar;%APP_HOME%\lib\httpcore-4.2.5.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\commons-compress-1.12.jar;%APP_HOME%\lib\annotations-26.0.0-dev.jar;%APP_HOME%\lib\error_prone_annotations-2.0.18.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar;%APP_HOME%\lib\httpclient-4.2.6.jar;%APP_HOME%\lib\commons-codec-1.6.jar;%APP_HOME%\lib\common-26.0.0-dev.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\sdklib-26.0.0-dev.jar;%APP_HOME%\lib\guava-22.0.jar
再次运行
C:\Users\admin\AppData\Local\Android\Sdk\tools\bin/sdkmanager --update
终于不报错了,在运行
flutter doctor --android-licenses
一路y之后,再检测flutter doctor -v 看看是否还有没配置的地方。