【AtomGit口袋工具开发】鸿蒙+Flutter开发避坑指南
摘要:本文记录了鸿蒙+Flutter开发AtomGit口袋工具时遇到的典型问题及解决方案。主要包括:1) 终端编译Windows应用失败的VisualStudio工具链缺失问题;2) 鸿蒙HAP包编译时的签名配置错误;3) DevEcoStudio无法识别Flutter工程的问题。针对每个问题提供了详细解决步骤,并总结了鸿蒙+Flutter开发的注意事项:需同时关注Flutter编译和鸿蒙工程配置
鸿蒙+Flutter开发踩坑实录:从项目创建到解决编译/签名/工程打开错误
作为鸿蒙应用开发新手,最近尝试用Flutter+HarmonyOS开发AtomGit口袋工具,刚起步就遇到了终端编译失败、鸿蒙签名配置、工程无法打开等连环坑。这篇笔记聚焦我踩过的核心错误,附详细解决步骤,适合和我一样的初学者参考。
一、开发目标
用Flutter搭建鸿蒙版AtomGit口袋工具的基础框架:
1.基于Material Design 3主题
2. 实现底部导航栏(首页+搜索页+我的页)
3. 完成页面基础结构(后续集成AtomGit API)
二、前期准备
1.环境:JDK 17 + DevEco Studio 4.0 + Flutter 3.10
2.工具:PowerShell终端、VS Code(写Flutter代码)、DevEco Studio(管理鸿蒙工程)
三、核心开发步骤(快速回顾)
1. 创建Flutter项目(PowerShell或cmd终端)
小博是在cmd终端的,先切换到自己的上一次创建项目和配置环境的路径,一定要在对应的路径,不然后续可能会面临排查路径问题,如小博路径是:“D:\HarmonyOS”
然后再终端分别输入以下两句命令:(结果如下图就是成功的)
flutter create gitcode_pocket_tool
cd gitcode_pocket_tool

然后验证项目,在终端分别输入以下命令;
1.# 检查 Flutter 环境
flutter doctor
2.# 运行默认应用
flutter run
2. 配置依赖(修改pubspec.yaml)
打开 pubspec.yaml 文件,修改为以下内容:(这个是为了添加Material 3支持)
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
然后切换到终端执行`flutter pub get`安装依赖。
3. 搭建Material 3主题(`lib/main.dart`)
import 'package:flutter/material.dart';
import 'pages/main_navigation.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'AtomGit口袋工具',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blueAccent),
useMaterial3: true,
),
home: const MainNavigation(),
);
}
}
4. 底部导航栏+页面结构
创建`lib/pages/main_navigation.dart`实现Tab切换,再分别写`intro_page.dart`、`search_page.dart`、`mine_page.dart`。
创建以上项目代码均在开发应用经常会用到的软件Visual Studio Code 中去写代码,在这软件中看到左上角左键File,选择open file,然后找到自己刚刚下载gitcode_pocket_tool的路径下gitcode_pocket_tool\lib\pages\main_navigation


小博作为新手在学习别的博客的优秀笔记时,看到类似如下的教程说创建配置文件给了我示例代码,小博找到了文件也没法直接打开,一直找打开方法,最终询问了优秀的开发者才知道要在VScode(即Visual Studio Code)中去写代码或修改代码
图标如是

四、重点踩坑&解决(我的真实错误)
错误1:Unable to find suitable Visual Studio toolchain(终端编译Windows设备失败)
现象
PowerShell执行`flutter run`,选择`Windows`设备后报错:
Error: Unable to find suitable Visual Studio toolchain. Please run 'flutter doctor' for more details. (如图)原因 Flutter编译Windows应用需要Visual Studio的C++工具链,我没安装对应组件。 解决 (小博选择的方案二) 两种方案(选其一): 方案1:安装Visual Studio 2022,勾选「使用C++的桌面开发」组件; 方案2:切换到Web设备调试,终端选择`Edge`(输入`2`),用浏览器运行项目。
错误2:请通过DevEco Studio打开ohos工程后配置调试签名(鸿蒙HAP包编译失败)
现象
编译鸿蒙应用时,终端提示签名未配置:
Error: 请通过DevEco Studio打开ohos工程后配置调试签名(File -> Project Structure -> Signing Configs 勾选Automatically generate signature)

原因
鸿蒙应用必须配置调试签名才能安装到设备,终端无法自动生成签名。
解决(在DevEco Studio中操作)
1. 用DevEco Studio打开Flutter项目的鸿蒙工程(项目根目录);
2. 点击顶部菜单`File → Project Structure → Signing Configs`;
3. 勾选`Automatically generate signature`,DevEco会自动生成调试签名;
4. 重新在终端执行`flutter run`,选择鸿蒙设备运行。


错误3:Cannot Open Project: pubspec.yaml does not contain a project(DevEco无法打开工程)
小博在学习优秀笔记的AtomGit口袋工具开发步骤时(如图步骤)

在DevEco Studio直接打开项目,提示错误无法打开(如下图)
现象 用DevEco Studio打开项目时,弹出提示:
Cannot Open Project: 'F:\Hongmeng\oh_code\oh_test\pubspec.yaml' does not contain a project'

原因
DevEco Studio默认识别鸿蒙原生工程,而Flutter项目的pubspec.yaml是Flutter配置文件,不是鸿蒙工程入口。
解决
打开Flutter项目的鸿蒙子工程目录(Flutter项目根目录下的`ohos`文件夹),而不是整个Flutter项目:
1. 关闭当前错误提示;
2. 打开VScode(即Visual Studio Code)
3. 左上角左键File,选择open file,然后找到在对应项目路径找到pubspec.yaml(小博的如图所示)

4.点击打开文件就会自动跳转到如图界面,

然后修改为以下内容:
name: gitcode_pocket_tool
description: "GitCode 口袋工具 - 一个轻量级的 GitCode 客户端"
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=3.6.2 <4.0.0'
dependencies:
flutter:
sdk: flutter
# 网络请求
dio: ^5.7.0
# 下拉刷新 & 上拉加载
pull_to_refresh: ^2.0.0
# URL 启动器
url_launcher: ^6.3.1
# 路由管理
go_router: ^14.6.2
# 图标
cupertino_icons: ^1.0.8
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^5.0.0
flutter:
uses-material-design: true
# 添加资源文件(我们后续会用到)
assets:
- assets/images/
版本更新建议
如需升级依赖版本,可在对应项目路径终端运行以下命令获取最新兼容版本:
flutter pub upgrade --major-versions
5.修改完成后,最后点击File找到save保存即可继续下面的步骤去做AtomGit口袋工具开发

五、初学者总结
1. 鸿蒙+Flutter开发是「Flutter代码+鸿蒙工程配置」的结合,终端负责Flutter编译,DevEco负责鸿蒙签名/工程管理;
2. 遇到终端错误先看依赖(如Visual Studio),遇到鸿蒙错误先查DevEco配置(如签名);
3. DevEco打开Flutter项目时,要选"ohos"子目录,不是整个Flutter项目。
后续会继续集成AtomGit API实现搜索功能,欢迎关注我的后续踩坑笔记~
更多推荐
原因
Flutter编译Windows应用需要Visual Studio的C++工具链,我没安装对应组件。
解决 (小博选择的方案二)
两种方案(选其一):
方案1:安装Visual Studio 2022,勾选「使用C++的桌面开发」组件;
方案2:切换到Web设备调试,终端选择`Edge`(输入`2`),用浏览器运行项目。



所有评论(0)