一文总结在不安装 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

完。

相关推荐
tianyi19919 小时前
flutter doctor 信号号超时
flutter
JarvanMo9 小时前
flutter工程化之动态配置
android·flutter·ios
RichardLai8815 小时前
[Flutter学习之Dart基础] - 类
android·flutter
getapi1 天前
flutter底部导航代码解释
前端·javascript·flutter
初遇你时动了情1 天前
安装fvm可以让电脑同时管理多个版本的flutter、flutter常用命令、vscode连接模拟器
flutter
RichardLai882 天前
[Flutter学习之Dart基础] - 控制语句
android·flutter
louisgeek2 天前
Flutter Channel 通信机制
flutter
浅忆无痕2 天前
Flutter空安全最小必备知识
android·前端·flutter
亚洲小炫风2 天前
flutter 打包mac程序 dmg教程
flutter·macos
亚洲小炫风2 天前
flutter 桌面应用之系统托盘
flutter·系统托盘