更新内容
- flutter插件项目中的ohos目次,将从鸿蒙工程project布局,更换为鸿蒙工程module布局。
- flutter工程中引用的har文件,统一放到 ohos/har 目次下。
- 更新后须要删除ohos插件中的旧模块目次。
更新步骤
以 flutter_flutter 中的 integration_test 为例的更新步骤如下
1. integration_test/ohos 目次由 project 布局修改为 module 布局
登录后复制 - cd flutter_flutter/packages/integration_test
- mv ohos/ohos ./ohos2
- rm -rf ohos
- mv ohos2 ohos
- cd example
- flutter pub get
- flutter build hap --debug
复制代码
执行flutter run后会出现报错,须要修改设置文件中的name字段,还须要修改 hvigorfile.ts。
2. 代码更新
2.1 修改 integration_test/ohos/oh-package.json5
修改前:
登录后复制 - {
- "name": "ohos",
- "version": "1.0.0",
- "description": "Please describe the basic information.",
- "main": "",
- "author": "",
- "license": "",
- "dependencies": {
- },
- "devDependencies": {
- "@ohos/hypium": "1.0.11"
- }
- }
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
修改后:
登录后复制 - {
- "name": "integration_test", // 和插件名(pubspec.yaml中的name)保持一致
- "version": "1.0.0",
- "description": "Please describe the basic information.",
- "main": "",
- "author": "",
- "license": "Apache-2.0",
- "dependencies": {
- "@ohos/flutter_ohos": "file:har/flutter.har",
- }
- }
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
2.2 修改 integration_test/ohos/src/main/module.json5
修改前:
登录后复制 - {
- "module": {
- "name": "ohos",
- "type": "har",
- "deviceTypes": [
- "default",
- "tablet",
- "2in1"
- ]
- }
- }
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
修改后:
登录后复制 - {
- "module": {
- "name": "integration_test", // 和插件名(pubspec.yaml中的name)保持一致
- "type": "har",
- "deviceTypes": [
- "default",
- "tablet",
- "2in1"
- ]
- }
- }
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
2.3 修改 integration_test/ohos/hvigorfile.ts
修改前:
登录后复制 - import { appTasks } from '@ohos/hvigor-ohos-plugin';
- export default {
- system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
- plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
- }
复制代码
修改后:
登录后复制 - export { harTasks } from '@ohos/hvigor-ohos-plugin';
复制代码
查抄是否可以正常运行
- 使用 DevEco-Studio 打开 integration_test/example, 设置签名
- 使用命令运行example
登录后复制 - cd integration_test/example
- flutter run -d $DEVICE --debug
复制代码
运行鸿蒙应用时,须要注意设置文件中 har文件 的引用
引用的har文件在 ohos/har 目次下
integration_test/example/ohos/oh-package.json5
修改后:
登录后复制 - {
- // ...
- "dependencies": {
- "@ohos/flutter_ohos": "file:./har/flutter.har"
- },
- "overrides": {
- "@ohos/flutter_ohos": "file:./har/flutter.har"
- }
- }
复制代码
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
integration_test/example/ohos/entry/oh-package.json5
修改前
登录后复制 - {
- // ...
- "dependencies": {
- "@ohos/integration_test": "file:./har/integration_test.har",
- }
- }
复制代码
修改后
登录后复制 - {
- // ...
- "dependencies": {
- "integration_test": "file:../har/integration_test.har",
- }
- }
复制代码
可能碰到的问题
1. no such file or directory
日志信息:
登录后复制 - hvigor ERROR: ENOENT: no such file or directory, stat 'xxx/flutter_flutter/packages/integration_test/ohos/build/default/cache/default/default@packageHar/ohos/oh_modules/@ohos/flutter_ohos'
复制代码
办理方案:
手动删除报错信息提示的文件。
2. operation not permitted, symlink
日志信息:
登录后复制 - hvigor ERROR: ENOENT: operation not permitted, symlink
- 'xxx/webview_flutter_ohos/ohos/webview_flutter/oh_modules/.ohpm/@ohos+flutter_ohos@file+libs+flutter.har/oh_modules/@ohos/flutter_ohos' ->
- 'xxx/webview_flutter_ohos/ohos/build/default/cache/default/default@PackageHar/webview_flutter/oh_modules/@ohos/flutter_ohos'
复制代码
办理方案:
har布局整改前的部门目次,在更新代码后须要手动删除,例如
- flutter_packages/packages/webview_flutter_ohos/ohos/webview_flutter
- flutter_packages/packages/path_provider_ohos/ohos/path_provider
- flutter_packages/packages/file_selector_ohos/ohos/FileSelector
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |