HarmonyOS 鸿蒙Next 如何解决Flutter三方库引用失败的问题

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何解决Flutter三方库引用失败的问题 【问题现象】

使用Flutter创建HarmonyOS项目,导入HarmonyOS三方库flutter_sound插件,报错加载插件失败。在Flutter项目中的pubspec.yaml中加载方式如下:

flutter_sound:
   git:
      url: "https://gitee.com/openharmony-sig/flutter_sound/tree/master/flutter_sound"

【背景知识】

1. HarmonyOS的 Flutter 项目基本知识

  • HarmonyOS的Flutter SDK 仓库路径,可支持DevEco Studio或者终端使用Flutter Tools指令编译和构建OpenHarmony应用程序,dev为开发分支,master为稳定分支。
  • HarmonyOS的Flutter开发应用程序需要使用npm和ohpm来管理依赖库和插件,用来提高开发效率。
  • pubspec.yaml文件用于描述Flutter应用程序的依赖关系和其他元数据。
  • 基本的Flutter项目结构如下:

点击放大

2. Flutter 三方库插件存在多种依赖方式

2.1 本地路径依赖

可通过文件系统的path依赖包方式进行依赖,path的值可为相对路径或者绝对路径。

dependencies:
   plugin1:
     path: ../plugin1/

2.2 git 路径依赖

dependencies:
   plugin1:
     git:
       url: git://github.com/flutter/plugin1.git
       path: path/xxx

2.3 指定commit ,branch 或tag 的git 依赖

dependencies:
  plugin1:
    git:
      url: git://github.com/flutter/plugin1.git
      ref: branch/commit/tag

2.4 pub依赖 : 目前HarmonyOS三方插件不支持此种方式

dependencies:
  plugin1: ^1.0.2

【解决方案】

(1)flutter_sound的HarmonyOS三方库应选择git路径依赖路径path为flutter_sound,参考如下示例,修改pubspec.yaml配置文件。

点击放大

dependencies:
  flutter:
    sdk: flutter
  flutter_sound:
    git:
      url: https://gitee.com/openharmony-sig/flutter_sound.git
      path: flutter_sound   //提醒:path参数不能缺少,否则添加插件不生效

**说明:**需要注意配置文件中的yaml缩进。

(2)执行flutter pub get****命令可正确引用,结果如下图。

点击放大

【总结】

本案例重点讲述了Flutter工程三方插件配置错误,Flutter工程其他的常见的问题请参见如下步骤逐一排查解决。

1. 在进行Flutter项目开发前的准备工作

(1)确认网络连接状态,检查npm和ohpm连接是否校验通过,网络连接是否校验通过,连接成功如图所示:

点击放大

若网络连接异常,需要检查npm代理和配置ohpm代理。

  • 配置npm代理:~/.npmrc
registry=https://repo.huaweicloud.com/repository/npm/
@ohos:registry=https://repo.harmonyos.com/npm/
strict-ssl=false
  • 配置ohpm代理:~/.ohpm/.ohpmrc
registry=https://repo.harmonyos.com/ohpm/
strict_ssl=false

(2)确认Flutter环境信息是否ok:使用命令flutter doctor -v

正确截图如下:

点击放大

点击放大

(3)确认Flutter子版本信息: 查看flutter.har中BuildProfile.ets里的HAR_VERSION字段的值。

点击放大

(4)确认是否只装了一个DevEco Studio:可在不同的终端执行flutter doctor -v命令,看结果是否相同。

2. Flutter 项目构建过程中的注意事项

必要时可清理构建产物,在ohos目录下执行hvigorw clean或者使用DevEco Studio的Build->Clean或者手动清理(橙色目录属于中间产物,可删除)。

点击放大

1 回复

作为IT专家,对于HarmonyOS鸿蒙Next中Flutter三方库引用失败的问题,可以尝试以下方法进行解决:

  1. 检查依赖版本:首先,确认所有第三方库的版本是否兼容,特别是当多个模块依赖同一个库但版本不同时,可能会出现冲突。可以使用oh-package.json5和oh-package-lock.json5文件来管理和检查依赖关系。
  2. 清理和重建项目:有时候,简单的清理和重建项目可以解决依赖冲突的问题。可以手动删除oh_modules目录和oh-package-lock.json5文件,然后重新打开编辑器让系统自动安装依赖。
  3. 检查引入方式:确保按照官方文档正确引入了第三方库。在HarmonyOS中,可能需要通过特定的方式(如ohpm)来引入。
  4. 分析报错信息:仔细分析报错信息,定位问题源头。错误日志通常会提供关于错误发生位置和原因的详细信息。
  5. 离线环境问题:如果处于离线环境,确保在有网时同步好工程,并将oh-package-lock.json5文件和<user目录>/.ohpm/cache目录拷贝到离线环境,以解决因网络问题导致的依赖下载失败。

如果以上方法都无法解决问题,可能是由于特定环境或配置导致的。此时,建议直接联系官网客服获取进一步的技术支持。官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部