当前位置: 首页 > news >正文

Flutter运行在安卓机 - -星语

原文:https://zhuanlan.zhihu.com/p/1989016070959419985
感谢作者,又学到了

下载准备

jdk 8 :https://developer.android.google.cn/studio?hl=zh-cn

android sdk:https://link.zhihu.com/?target=https%3A//developer.android.google.cn/studio%3Fhl%3Dzh-cn

往下翻找到命名行工具:image-20260414181812440

操作

1.进入 cmdline-tools 文件夹,创建一个 latest 的子目录,然后将 cmdline-tools 文件夹内原有的全部文件和文件夹都移动到这个 latest 子目录中。

2.环境变量

2.1 新建 ANDROID_HOME ,指定cmdline-tools 所在文件夹的地址,用来充当 Android SDK 的下载地址

2.2 添加 path ,指定bin包

2.3 测试

image-20260414184225620

image-20260414190657322

2.4 安装 Android SDK

sdkmanager "platform-tools" "platforms;android-28" "build-tools;28.0.0"

相关命令

# 安装软件包
sdkmanager packages
sdkmanager "platforms;android-36" "build-tools;36.0.0"
# 卸载软件包
sdkmanager --uninstall packages
# 列出已安装和可用的软件包
sdkmanager --list

vscode操作

1.打开终端

使用 Ctrl+Shift+` 打开控制台终端,输入 flutter doctor,检查 Android SDK 是否满足要求。

解决版本问题:sdkmanager "platforms;android-36" "build-tools;36.0.0"

解决证书问题:flutter doctor --android-licenses

其他问题可问ai解答

如下图所示,就完成了不通过 Android Studio 安装 Android SDK

image-20260414195538637

2.新建一个模版并做以下配置

在国内,安卓项目的部署会要求下载 Gradle,同时会使用 Maven 下载相应的依赖文件,但因为网络问题,往往无法进行,此时,我们就需要进行镜像地址配置。

在 Flutter 安卓项目中,应当在以下三个地方配置镜像文件。

2.1 android\gradle\wrapper\gradle-wrapper.properties,在这个文件中,我们需要将 distributionUrl 这个的属性值由 https://services.gradle.org/distributions 修改成 https://mirrors.aliyun.com/macports/distfiles/gradle,由谷歌下载换成阿里云下载。

image-20260414200627509

2.2 如果有文件 android\settings.gradle.kts,则要在这个文件中寻找是否有 pluginManagement 或 dependencyResolutionManagement 这两个配置项,需要在这两个配置项中的 repositories 添加以下配置值。(如果没有文件则不用管,如果只有 pluginManagement,则只在 pluginManagement 中添加)

注意,如果文件后缀不是 .kts 这类 Kotlin 语言文件,如 settings.gradle,那么这里的 maven 方法应当写成 maven { url 'https://maven.aliyun.com/repository/central' },不能写成 maven(url = "https://maven.aliyun.com/repository/central")

如:

pluginManagement {...repositories { maven(url = "https://maven.aliyun.com/repository/public/") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/gradle-plugin")google() mavenCentral() gradlePluginPortal() } 
} dependencyResolutionManagement { ...repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { maven(url = "https://maven.aliyun.com/repository/public/") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/gradle-plugin") google() mavenCentral() } 
} ...
include(":app")

2.3 如果有文件 android\build.gradle.kts,则要在这个文件中寻找是否有 buildscript 或 allprojects 这两个配置项,需要在这两个配置项中的 repositories 添加以下配置值。(如果没有文件则不用管,如果只有 allprojects,则只在 allprojects 中添加)

注意,如果文件后缀不是 .kts 这类 Kotlin 语言文件,如 build.gradle,那么这里的 maven 方法应当写成 maven { url 'https://maven.aliyun.com/repository/central' },不能写成 maven(url = "https://maven.aliyun.com/repository/central")

如:

buildscript {...repositories {        maven(url = "https://maven.aliyun.com/repository/public/") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/gradle-plugin")google()}...
}allprojects {...repositories {maven(url = "https://maven.aliyun.com/repository/public/") maven(url = "https://maven.aliyun.com/repository/central") maven(url = "https://maven.aliyun.com/repository/google") maven(url = "https://maven.aliyun.com/repository/gradle-plugin")google()}...
}

3.最后愉快的启动吧

http://www.jsqmd.com/news/641171/

相关文章:

  • 别再死记硬背BERT结构了!用PyTorch手搓一个BERT-Base,带你彻底搞懂MLM和NSP
  • Spyglass之CDC检查入门指南:从约束文件到结果分析
  • 前端工程化实战:项目亮点与技术难点深度解析
  • KeymouseGo终极指南:零代码实现鼠标键盘自动化操作
  • CVPR 2023 DoNet实战:用Python+PyTorch搞定重叠细胞分割(附代码避坑指南)
  • 白帽黑客2026年最新学习攻略,干货满满,不可能学不会了(附资源)!!!
  • Lychee重排序模型效果展示:原始粗排结果vs Lychee精排结果对比可视化
  • 当数据不满足假设时怎么办?Python中Welch方差分析与Games-Howell检验的替代方案
  • 别再为环境变量头疼了!手把手教你用Anaconda搞定DeepKe(附PowerShell激活避坑指南)
  • 第20节:AI 赋能短片创作之 Dify 从0到1部署实战【打造合规、高效的脚本生成工具】
  • 3大核心功能彻底改变你的英雄联盟游戏体验
  • 基于LangGraph与DeepSeek构建多MCP服务协同智能体
  • 告别虚拟机!用WinSniffer v1.5 + MT7921网卡在Windows原生抓取WiFi 6E/7的6GHz报文
  • 3步快速禁用Windows Defender:windows-defender-remover终极解决方案
  • 通达信缠论可视化插件:5分钟快速掌握专业缠论分析
  • **发散创新:用Python构建高扩展性BI工具的核心数据管道**在当今数据驱动的时代,企业对
  • Qwen3.5-9B-AWQ-4bit赋能Dify平台:快速构建可视化AI工作流
  • [题解] HDU 3336. KMP算法 / 字符串题经典 DP
  • 西安电子科技大学计算机考研复试攻略:笔试与机试成绩深度解析
  • HTML头部元信息避坑
  • 实战指南:如何用Python+ELK搭建企业级网络安全态势感知系统
  • Windows防火墙服务消失?3分钟教你用注册表找回Windows Defender Firewall
  • 8.【线性代数】——Ax=b解的结构:从特解到通解
  • Wan2.2-I2V-A14B企业级应用:Java微服务架构下的智能视频客服系统
  • CSDN+GitHub双栖开发者生存指南
  • 基于VSG分布式能源并网仿真:有功频率与无功电压控制的完美波形实现(MATLAB 2021b版)
  • 【Agent初认识】回答你关于Agent的三个问题
  • FigmaCN:3步让你的Figma设计工具说中文的完整解决方案
  • BUUCTF - Basic:从靶场入门到实战的Web安全漏洞全景解析
  • ncmdump:三分钟解锁网易云音乐NCM格式,让音乐自由流动