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
- 得了,重启一下吧,也能
source
和export
,重启安心点。 # 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
即可