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

完。

相关推荐
ujainu34 分钟前
Flutter + OpenHarmony 游戏开发进阶:游戏主循环——AnimationController 实现 60fps 稳定帧率
flutter·游戏·openharmony
2601_9498683634 分钟前
Flutter for OpenHarmony 剧本杀组队App实战04:发起组队表单实现
开发语言·javascript·flutter
kirk_wang44 分钟前
Flutter艺术探索-Flutter在鸿蒙端运行原理:OpenHarmony平台集成
flutter·移动开发·flutter教程·移动开发教程
晚霞的不甘1 小时前
Flutter for OpenHarmony专注与习惯的完美融合: 打造你的高效生活助手
前端·数据库·经验分享·flutter·前端框架·生活
2401_865854882 小时前
Uniapp和Flutter哪个更适合企业级开发?
flutter·uni-app
向哆哆2 小时前
Flutter × OpenHarmony 跨端实战:打造健身俱乐部「数据可视化仪表盘」模块
flutter·信息可视化·开源·鸿蒙·openharmony·开源鸿蒙
灰灰勇闯IT2 小时前
Flutter for OpenHarmony:卡片式 UI(Card Widget)设计 —— 构建清晰、优雅的信息容器
flutter·交互
灰灰勇闯IT2 小时前
Flutter for OpenHarmony:响应式布局(LayoutBuilder / MediaQuery)—— 构建真正自适应的鸿蒙应用
flutter·华为·harmonyos
晚霞的不甘2 小时前
Flutter for OpenHarmony手势涂鸦画板开发详解
前端·学习·flutter·前端框架·交互
晚霞的不甘2 小时前
Flutter for OpenHarmony 实现动态天气与空气质量仪表盘:从 UI 到动画的完整解析
前端·flutter·ui·前端框架·交互