4 Home
SouthFox edited this page 2025-08-20 02:20:47 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

设置开发环境

以 Arch 系统为例:

安装依赖

安装 clojure

sudo pacman -S clojure rlwrap

使用 yay (或其它类似工具)安装 flutter sdk 和 android sdk 并创建一个 android 虚拟机(可选)

其中, android sdk 最新下载地址在 https://developer.android.com/studio 页面网下拉 Command line tools only 一栏可以找到。

yay -S flutter-bin
curl https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip -o commandlinetools-linux.zip
mkdir -p ~/android-sdk
mv commandlinetools-linux.zip ~/android-sdk
cd ~/android-sdk
unzip commandlinetools-linux.zip
mv cmdline-tools latest
mkdir cmdline-tools
mv latest cmdline-tools
cd cmdline-tools/latest/bin
./sdkmanager --update
./sdkmanager "platform-tools" "platforms;android-35" "build-tools;33.0.1" "system-images;android-35;default;x86_64"
./avdmanager create avd -n hello -k "system-images;android-35;default;x86_64" -d pixel -f
./avdmanager list avd
export ANDROID_SDK_ROOT=$HOME/android-sdk && export ANDROID_AVD_HOME=$HOME/.config/.android/avd
~/android-sdk/platform-tools/adb kill-server
~/android-sdk/platform-tools/adb start-server

构建工程

在项目目录里:

flutter pub get
# 如果需要代理可使用环境变量如 HTTP_PROXY=http://127.0.0.1:10809 HTTPS_PROXY=http://127.0.0.1:10809 flutter pub get

使用 clojuredart 将 cljd 编译成 dart

clj -M:cljd compile

Gradle 设置代理

如果想为 Gradle 设置代理,编写 ~/.gradle/gradle.properties 文件,如:

# HTTP Proxy
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=10809

# HTTPS Proxy
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=10809

生成安卓 key

使用 keytool 工具(安装 java jdk 默认会安装),生成一个 jks 文件

keytool -genkey -v -keystore [keystore_name].jks -keyalg RSA -keysize 2048 -validity 10000 -alias [alias_name]

其中 keystore_name 和 alias_name 需自己指定,命令会要求输入 keystore 密码(不小于六位),并确认,然后输入基本信息(可留空),然后在最终确认阶段输入 yes 确定。如:

$ keytool -genkey -v -keystore test.jks -keyalg RSA -keysize 2048 -validity 10000 -alias test
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:
What is the name of your organizational unit?
  [Unknown]:
What is the name of your organization?
  [Unknown]:
What is the name of your City or Locality?
  [Unknown]:
What is the name of your State or Province?
  [Unknown]:
What is the two-letter country code for this unit?
  [Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  yes

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
        for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
[Storing test.jks]

将生成的 jks 文件放到项目目录的 android/app/ 文件夹。

然后在项目目录中的 android/ 目录编写 key.properties 文件

storePassword=[keytool 命令时输入的密码]
keyPassword=[keytool 命令时输入的密码]
keyAlias=[keytool 命令指定的 alias_name 如 test]
storeFile=[keytool 命令指定的 keystore_name 如 test.jks]

运行项目

使用 android 虚拟机:

export ANDROID_SDK_ROOT=$HOME/android-sdk && export ANDROID_AVD_HOME=$HOME/.config/.android/avd
flutter emulators --launch hello
clj -M:cljd flutter

使用真机调试:

连接安卓机启用开发者选项,在开发者选项里开启 usb 调试。

export ANDROID_SDK_ROOT=$HOME/android-sdk
clj -M:cljd flutter

参考

在中国网络环境下使用 Flutter