文章按步骤依次为 开发环境安装、设备调试准备(真机、WIFI连接、模拟器等)、项目的创建和运行,因为有好几个环境变量需要设置,相对于其他安装完就算完事的开发环境,会复杂不少。
1. 使用国内镜像
创建两个用户环境变量,在中国使用Flutter
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
2. SDK、编辑器和插件
- 解压,并将/bin目录加到环境变量中。
- 打开一个终端,执行
flutter doctor
检查是否仍需其他依赖。
2.1 Android SDK的安装
下载命令行工具,解压到
F:\Android\sdk
创建三个环境变量
JAVA_HOME
(安装jdk的路径),ANDROID_HOME
(F:\Android
),ANDROID_SDK_ROOT
(F:\Android\sdk
),并把Android\sdk\bin
加入到环境变量。-
运行
flutter doctor
,注意Android-toolchains部分,执行提示命令,比如提示我执行两个命令:# 安装需要的Android环境 "F:\Android\tools\bin\sdkmanager" "platforms;android-28" "build-tools;28.0.3" # 修复许可,输入Y接受即可 flutter doctor --android-licenses
使用代理
sdkmanager --proxy=http --proxy_host=127.0.0.1 --proxy_port=1080 #适用于所有命令,指示使用代理
也可以在用户目录下~/.android
创建androidtool.cfg
文件:
http.proxyPort=1080
http.proxyHost=127.0.0.1
2.2 编辑器
我使用VSCode
- 查找并安装扩展
flutter
- 然后使用
ctrl
+shift
+p
调出命令面板, 输入 ‘doctor’, 然后选择 ‘Flutter: Run Flutter Doctor’, 看会不会出问题, 没有错误就行。Android Studio不用管。
2.3 连接设备
连接工具准备
这里需要使用adb,方便起见,安装platform-tools
,包括了adb以及其他工具。
sdkmanager "platform-tools"
安装完之后,将F:\Android\platform-tools
添加到环境变量,方便后续使用。
手机连接
- 进入开发者模式
- 进入开发者选项,启用USB调试
- 使用数据线连接电脑,同意USB调试
- 使用
adb tcpip 5555
命令,设置Wifi连接的端口号为5555
使用WIFI
将电脑和手机处于同一WiFi下,也可以Windows自己开(Win10自带了),手机WiFi的IP可以通过手机信息查看,首先需要能ping通。
然后电脑执行连接命令,连接手机IP,显示连接成功即可。
adb connect xxx.xxx.xx.xx
Android模拟器
# intel 硬件加速,可能需要打开Android/extras/intel目录,进行安装silent_install.bat
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"
# Windows打开Hyper-V服务
# 28版本的镜像
sdkmanager "system-images;android-28;default;x86_64"
# 模拟器
sdkmanager "emulator"
# 创建一个名为‘Pie’的模拟器实例,后续指令可能需要在Android/emulator目录下执行,或者将其加入环境变量
avdmanager create avd -n Pie -k "system-images;android-28;default;x86_64"
.\emulator.exe -avd Pie
# 删除模拟器
avdmanager delete avd -n Pie
# 脚本
emulator.exe -avd Pie -no-boot-anim -scale 96dpi -dpi-device 160 -partition-size 100
模拟器皮肤
简单说就是在用户目录下可以找到自己创建的模拟器,比如C:\Users\{users}\.android\avd\Pie.avd
,进去可以看到有一个文件config.ini
(使用实体键盘也在这里设置),添加下面两行就可以,皮肤可以去Github下载,skins目录里都是。
# 皮肤名
skin.name=pixel
# 皮肤路径,里面有layout文件
skin.path=G:\Android\skins\pixel
也可以复制修改layout文件,去掉设备边框,设置屏幕大小之类的,比如:
parts {
device {
display {
width 480
height 800
x 0
y 0
}
}
}
layouts {
portrait {
width 480
height 800
event EV_SW:0:1
part1 {
name portrait
x 0
y 0
}
part2 {
name device
x 0
y 0
}
}
landscape {
width 600
height 360
event EV_SW:0:0
part1 {
name landscape
x 0
y 0
}
part2 {
name device
x 0
y 0
rotation 3
}
}
}
3. 项目
调出命令面板,使用Flutter: New Project
根据提示创建项目。进入项目,VSCode的右下角也会显示连接的设备。执行flutter run
运行。
3.1 示例项目
在Flutter安装目录下,有一个examples文件夹,里面有各种示例项目,包括gallery。通过git pull可以及时拉取最新代码。进入项目,使用flutter run
可以执行。
4. 其他问题
卡在Initializing gradle
我是因为gradle国内下载太慢,方法是自己下载,然后放到gradle的下载目录里,让它接着执行之后的操作。
- 停下来
- 查看用户目录下的
.gradle\wrapper\dists\
, 比如我的C:\Users\kwokg\.gradle\wrapper\dists\gradle-4.10.2-all
- 有一个文件夹,比如我的
gradle-4.10.2-all
- 自行下载
https://services.gradle.org/distributions/gradle-4.10.2-all.zip
- 将下载下来的zip文件,放到原文件夹下名字很乱的文件夹下,比如
gradle-4.10.2-all\9fahxiiecdb76a5g3aw9oi8rv
这个文件夹。 - 重新执行
flutter run
- 启动