鸿蒙+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实现搜索功能,欢迎关注我的后续踩坑笔记~

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐