一文总结在不安装 Android Studio 的情况下在安卓手机上运行 Flutter 应用

上篇 ~ 初始化一个新的 Flutter 项目,请按照以下步骤操作

1. 确认 Flutter SDK 是否已正确安装

如果你尚未安装 Flutter,请先下载并解压 SDK:

访问 Flutter 官网 下载 Mac 版本的 SDK 解压到指定目录,例如:

unzip ~/Downloads/flutter_macos_arm64.zip -d ~/

2. 配置环境变量

打开 zsh 配置文件 :

nano ~/.zshrc

添加 Flutter 路径 :在文件末尾添加以下内容(假设 Flutter 解压到 ~/flutter):

export PATH="$PATH:~/flutter/bin"

保存并退出 :按 Ctrl + X,然后按 Y 确认保存。

3. 立即生效配置

source ~/.zshrc

4. 验证是否生效

flutter --version

如果输出类似以下内容,说明配置成功:

Flutter 3.x.x • channel stable • ...

5. 注意事项

权限问题 :确保 Flutter 目录有执行权限:

chmod +x ~/flutter/bin/flutter

运行 flutter doctor 检查依赖项(如 Android Studio/Xcode):

flutter doctor

根据提示安装缺失的依赖。

确保 flutter 文件有执行权限:

chmod +x ~/flutter/bin/flutter

⭐️在中国网络环境下使用 Flutter

参考链接,配置你的机器使用国内镜像

下篇 ~ 在不安装Android Studio的情况下,如何满足Flutter运行所需的Android SDK组件

1. 下载 Android SDK

访问 Android SDK 独立工具页面 ,下载 Command line tools only (例如 commandlinetools-mac-xxx_latest.zip)。

确保解压后的 cmdline-tools 的目录结构正确。正确的结构应为:

如果解压后的目录缺少层级,手动调整:

假设你解压后的 cmdline-tools 在 ~/Downloads

mkdir -p ANDROID_HOME/cmdline-tools/latest mv \~/Downloads/cmdline-tools/\* ANDROID_HOME/cmdline-tools/latest/

2. 安装 SDK 组件

通过终端使用 sdkmanager 安装必要组件:

进入 sdkmanager 所在目录

cd $ANDROID_HOME/cmdline-tools/latest/bin

安装最新平台工具和构建工具,使用 --sdk_root 指定根目录

./sdkmanager --sdk_root=$ANDROID_HOME "platform-tools" "platforms;android-34" "build-tools;34.0.0"

(将 android-34 和 34.0.0 替换为你需要的版本)

如果权限不足,赋予 sdkmanager 可执行权限:

chmod +x $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager

3. 接受 SDK 许可证

./sdkmanager --licenses

按提示输入 y 接受所有协议。

4. 配置环境变量

将 Android SDK 路径添加到 shell 配置文件(如 ~/.zshrc 或 ~/.bash_profile):

echo 'export ANDROID_HOME="$HOME/Library/Android/sdk"' >> ~/.zshrc

echo 'export PATH="PATH:ANDROID_HOME/platform-tools"' >> ~/.zshrc

echo 'export PATH="PATH:ANDROID_HOME/cmdline-tools/bin"' >> ~/.zshrc

source ~/.zshrc

5. 连接安卓手机

在手机上启用 开发者选项 和 USB 调试 :

进入 设置 > 关于手机 ,连续点击 版本号 7 次。

返回设置,进入 系统 > 开发者选项 ,启用 USB 调试 。

通过 USB 连接手机到 Mac,终端输入 flutter devices 确认设备被识别。

6. 运行 Flutter 应用

创建项目

使用以下命令初始化项目(将 your_project_name 替换为你的项目名):

flutter create your_project_name

项目名建议使用小写字母和下划线(如 my_flutter_app)。 默认会生成一个包含示例代码的项目。

进入项目目录

cd your_project_name

运行应用

连接设备(真机或模拟器)后执行:

flutter run

如果手机被正确识别,应用会自动编译并安装到设备。首次运行会自动下载依赖,可能需要等待几分钟。

运行错误解决

(1) 无法安装指定版本的NDK

使用命令行工具手动安装指定版本的 NDK:

查看可用的 NDK 版本

sdkmanager --list | grep "ndk"

安装指定版本 NDK(示例为 26.3.11579264)

sdkmanager --install "ndk;26.3.11579264"

如果安装失败,可能需要先接受许可证:

yes | sdkmanager --licenses

安装完成后,清理并重新构建

flutter clean

flutter pub get

flutter run

(2) Error: Could not determine SDK root.

sdkmanager 依赖 Java 8 或更高版本,安装 Java 环境

(3) 在Flutter真机调试时卡在Running Gradle task 'assembleDebug'...

这是因为Gradle依赖下载缓慢或失败。将其替换为国内镜像,在项目android/build.gradle中修改仓库地址,同时,在 android/build.gradle.kts 中指定 Kotlin 版本(与 Flutter 兼容):

rust 复制代码
buildscript {
    ext.kotlin_version = "1.9.23" // 与 Flutter 适配的版本
    repositories {
        // 将google()和mavenCentral()替换为:
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}
allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
    }
}

在 android/gradle/wrapper/gradle-wrapper.properties 中,使用国内镜像加速下载:

distributionUrl=mirrors.aliyun.com/github/rele...

如果项目使用的是 build.gradle.kts (Kotlin DSL),在 android/build.gradle.kts 中,将仓库地址替换为国内镜像:

buildscript 复制代码
    val kotlinVersion: String by extra("1.9.23") // 使用 extra 定义变量
    repositories {
        // 注释掉默认仓库
        // google()
        // mavenCentral()
        // 添加阿里云镜像
        maven { url = uri("https://maven.aliyun.com/repository/google") }
        maven { url = uri("https://maven.aliyun.com/repository/central") }
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.0.0") // 确保版本与 Flutter 兼容
    }
}

allprojects {
    repositories {
        // 注释掉默认仓库
        // google()
        // mavenCentral()
        // 添加阿里云镜像
        maven { url = uri("https://maven.aliyun.com/repository/google") }
        maven { url = uri("https://maven.aliyun.com/repository/central") }
    }
}

清理项目并重新构建

清理构建缓存:

flutter clean

删除android/.gradle、android/app/build等目录:

rm -rf android/.gradle
rm -rf android/app/build

重新获取依赖:

flutter pub get

重新运行应用:

flutter run

完。

相关推荐
火柴就是我9 小时前
flutter 之真手势冲突处理
android·flutter
Speed1239 小时前
`mockito` 的核心“打桩”规则
flutter·dart
法的空间10 小时前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios
恋猫de小郭10 小时前
Android 将强制应用使用主题图标,你怎么看?
android·前端·flutter
玲珑Felone11 小时前
从flutter源码看其渲染机制
android·flutter
ALLIN1 天前
Flutter 三种方式实现页面切换后保持原页面状态
flutter
Dabei1 天前
Flutter 国际化
flutter
Dabei1 天前
Flutter MQTT 通信文档
flutter
Dabei1 天前
Flutter 中实现 TCP 通信
flutter
孤鸿玉1 天前
ios flutter_echarts 不在当前屏幕 白屏修复
flutter