Flutter 安装

ArchLinux Java 15 安装 Flutter 并开启 Web 支持

源里的没了,git 手动装吧。

  • # sudo pacman -S git unzip

最好别用 JDK15 玩安卓,给自己找麻烦,乖乖用 8

记得给 gradle 带上代理,要么就直接配 repository

  • 安装 android sdk # sudo pacman -S android-sdk android-sdk-build-tools android-sdk-platform-tools android-platform sudo chown -R seliote:seliote /opt/android-sdk
  • JDK 9+ 移除了部分 JEE 模块,包含 jaxb,所以得手动给加进 CLASSPATH 去才行,找到以下依赖,版本也注意一下:
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>com.sun.istack</groupId>
    <artifactId>istack-commons-runtime</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>3.0.0</version>
</dependency>
<!-- 这个不能用 3.x,会 Cannot invoke "javax.xml.bind.JAXBContext.createUnmarshaller()" because "context" is null -->
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.3.3</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-jxc</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-xjc</artifactId>
    <version>3.0.0</version>
</dependency>

上面下载的 JAR 包复制进 /opt/android-sdk/tools/lib 里,然后编辑以下 CLASSPATH# vim /opt/android-sdk/tools/bin/sdkmanager,找到 CLASSPATH 设置处,按照之前的样子把上面所有的 JAR 包一个一个加进去,不支持通配符

  • 环境变量 # sudo vim /etc/profile,不要以为有爬墙虎就能不用 flutter-io
export ANDROID_HOME='/opt/android-sdk/'
export no_proxy="localhost,127.0.0.1"
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export CHROME_EXECUTABLE=/usr/bin/google-chrome-stable
export PATH="$PATH:/opt/flutter/bin"
  • # cd /tmp/ 换个目录
  • # export http_proxy="http://localhost:8118" # export https_proxy="http://localhost:8118" 加上两个变量爬一下,不然太慢了
  • 没开 Web 就 clone stable,web 的用 beta # git clone https://github.com/flutter/flutter.git -b beta --depth 1 flutter
  • # sudo mv flutter /opt/ 移到 /opt 并改权限 # sudo chown -R seliote:seliote /opt/flutter
  • 得了,重启一下吧,也能 sourceexport,重启安心点。
  • # flutter doctor,如果开代理的话,这里对代理有要求,有的可能会报 failed to establish tunnel (503 Too many open connections),要改一下相关最大连接配置才行
  • 根据提示 # flutter doctor --android-licenses 全选 Y 就好
  • # flutter config --enable-web 开启 web 支持
  • # flutter config 看一下 web 有没有开
  • ~/.gradle/gradle.properties 加上代理,不然 build 卡死

没用 AS,所以还要装一下模拟器,arch 的,感谢这位 gay hub 老哥的启发 GitHub

  • 安装模拟器 emluator:sudo pacman -Ss android-emulator
  • 查一下镜像:sdkmanager --list | grep system-images
  • 装个镜像:sdkmanager --install "system-images;android-29;default;x86" (这里好像得爬)
  • 创建模拟器:echo "no" | avdmanager --verbose create avd --force --name "android_10" --package "system-images;android-29;default;x86" --tag "default" --abi "x86",avdmanager 也要加上 CLASSPATH
  • 列出可用的模拟器:emulator -list-avds
  • 配置一下模拟器 vim ~/.android/avd/android_10.avd/config.ini

skin.name=1080x1920
hw.lcd.density=480
hw.keyboard=yes
  • 启动模拟器:emulator @android_10

真机的话 android-udev 即可

原文地址:https://www.cnblogs.com/seliote/p/12388641.html