【HarmonyOS NEXT】FAQ之DevEco Studio(工程管理)

1、环境诊断、创建工程/模块界面全部显示空白

A:导致该问题的可能原因为电脑GPU不兼容,或在云桌面的场景下使用DevEco Studio。

在DevEco Studio中双击Shift,在弹出的窗口中搜索Registry...在Registry页面中勾选ide.browser.jcef.gpu.disable项,关闭窗口并重启DevEco Studio即可。

img

2、打开历史工程,报错提示“Install failed FetchPackageInfo: hypium failed”

A:导致该问题的可能原因为包名使用错误。在工程级oh-package.json5中,将devDependencies字段下"hypium"修改为"@ohos/hypium"。hypium具体版本信息请参考配套关系

img

3、如何将HSP(动态共享包)转为HAR(静态共享包)

A:如下步骤

  1. 在HSP下的module.json5中,把"type": "shared"修改为"type": "har",删除"deliveryWithInstall"、"pages"字段。

  2. 删除HSP中的页面,如果要以页面的形式使用到的话,就需要改为命名路由/navigation的写法。

  3. 然后再找到HSP下的hvigorfile.ts文件,将里面的hspTasks改为harTasks。

  4. 最后编译该模块即可。如果编译过程中遇到其他错误,按照提示找到对应位置修改即可。

4、如何将HAR(静态共享包)转为HSP(动态共享包)

A:如下步骤

  1. 新建一个HSP,将HAR包拷过来放到一个lib目录,在HSP的oh-package.json5里的dependencies下配置HAR包。

    "dependencies": {  "myhar": "file:./lib/myHar.har" // myHar.har路径:oh-package.json5文件同目录下的lib文件夹下面}
  2. 在HSP的Index.ets里直接导出HAR的内容。

    export * as myhar from 'myhar';
  3. 最后编译该HSP即可。

5、打印较长的日志内容时,DevEco Studio控制台如何设置

A:如下

  1. 可以导出日志:Help->Show Log in Explorer。

  2. 可以改变DevEco控制台的日志输出设置:File->setting->Editor->General->Console下,点击Override console cycle buffer size选项,自定义大小。

6、DevEco Studio如何自动install依赖

A:DevEco Studio在以下三种场景会自动install依赖:

  1. 打开工程,自动install所有模块中的依赖。

  2. 手动点击File > Sync and Refresh Project,自动install所有模块中的依赖。

  3. 手动点击Build > Build Hap(s)/App(s)或者Build > Rebuild Project时,自动install所有模块中的依赖。

7、如何关闭DevEco Studio自动格式化功能

A:如果是复制C/C++的代码到IDE中会自动格式化,可以在File -> settings打开设置界面,搜索Code Style,找到C/C++,选择Other,去掉Format On Paste的勾选

8、构建HAP包报错hap-sign-tool: error: Missing parameter: compatibleVersion

A:可以看出是在使用hap-sign-tool工具时出现了错误,根据错误描述问题是缺少了一个参数compatibleVersion。

点击放大

9、如何将HAR工程中引入的其他HAR的接口对外暴露

现在有一个HAR工程引入公司内部其他产品的har包,现在想通过一个HAR的方式对外提供。有没有对应配置方法?

例如:a.har工程里包含并使用了b.har现在需要对外提供a.har,使其对外暴露的接口功能中,涵盖b.har所有对外功能。能否通过配置进行实现。

A:可以将b.har中的所有接口对外导出的时候使用namespace进行导出:如导出b.har的工具中多个方法

b.har根目录下的Index.ets

img

在a.har根目录下的Index.ets文件中,添加如下内容:

img

外部调用

img

10、如何解决mac启动IDE报错提示“devecostudio”意外退出问题

A:问题根因:异常修改了jetbrain启动脚本中的环境变量,导致java虚拟机无法启动,IDE无法打开,弹窗报错。

规避措施:删除启动脚本(/Users/{USER_NAME}/Library/LaunchAgents/jetbrains.vmoptions.plist),重启mac。

11、应用IDE升级到Canary2之后,版本号报“ohpm ERROR : Found exception: Error : The version xxxxx of dependecy xxxx”错误

A:之前本地依赖冲突时是随机安装的没有检查实际版本号,现在加上这个逻辑这个版本号就必须要校验,当本地文件(.har或.tgz后缀)依赖之间、本地源码模块依赖之间、本地文件(.har或.tgz后缀)依赖与本地源码模块依赖之间出现冲突时,ohpm自动冲突处理机制会比较该依赖内部oh-package.json5文件中version字段配置的版本号大小,版本号大的将会被安装。

点击放大

需要修改version字段后重新出包

一般报错都是因为HAR包里面的version是4段的

关于HAR包修改成三段的命名要求:并没有要求,主要是version字段必须是x.x.x

12、如何解决Windows系统使用IDE时SDK卸载失败,报“Unable to rename the file. Cause:Unable to delete D:\xxx\HarmonyOS-NEXT-DP1”错误

A:如下步骤

1、打开任务管理器

2、切换到“性能”页签

3、点击下方“打开资源监视器”

img

4、把上方提示的路径D:\xxx\HarmonyOS-NEXT-DP1粘贴到关联的句柄窗口右侧搜索栏,回车搜索占用的进程,结束该进程即可。

img

13、.h文件中uint8_t无法使用如何解决?

A:如下

  1. 在CPP导入头文件修改如下:

    #ifdef __cplusplusextern “C” {#endif#include “MGDolphinTOTP.h”#include “MGDolphinTOTPsha1.h”#ifdef __cplusplus}#endif
  2. CMakeLists.txt 中需要增加 .c 文件进行编译 :

    add_library(entry SHARED hello.cpp NapiTest.cpp MGDolphinTOTP.c MGDolphinTOTPSha1.c)

14、如何查看混淆后的结果

A:从代码生成的编译产物看混淆的可以从附件的三个地方查看,具体可以参考文档:Arkguard在DevEco Studio中的用法

请确认开启了哪些混淆选项,如:

-disable-obfuscation 关闭所有混淆

-enable-property-obfuscation 开启属性混淆

-enable-toplevel-obfuscation 开启顶层作用域名称混淆

-enable-filename-obfuscation 开启文件/文件夹名称混淆

-compact 去除不必要的空格符和所有的换行符

-remove-log 删除所有console.*语句

-apply-namecache filepath 复用指定的名称缓存

15、如何使用DevEco Studio上的Git工具进行多远程仓管理

A:添加新的远程仓库:

  1. 右击Remote调出菜单。

  2. 点击Manage Remotes,打开Git Remotes窗口。

    img

  3. 点击添加按钮。

  4. 输入远程仓名称和URL,远程仓名称自己自由命名。

  5. 点击Define Remote窗口的OK按钮,在新弹出的窗口中输入域账号和密码。

  6. 点击Git Remotes窗口的OK按钮。

    点击放大

  7. 点击拉取远程所有远程记录,新添加的远程仓库会在Remote下子菜单中显示出来。

    img

Push提交:

Push提交和Push提交到远程仓库基本一样,如果有需要的话,单击下图中标记1的分支名可以切换远程仓,标记3表示以PR方式提交。

点击放大

切换默认关联的远程仓库:

可以使用以下命令切换。

git branch hmos_dev_20230907 --set-upstream-to=codehub_origin/hmos_dev_202309

16、如何通过离线方式安装npm包

A:如下

前置条件

  • 有网环境PC一台。

  • 离线环境PC已有node基础环境。

  • 离线环境PC需安装Verdaccio工具(可通过以下安装离线包的方式来安装工具)。

  1. 在有网环境下将所需依赖通过npm-pack-all工具包将所有依赖项打包成.tgz文件。

    1. 安装npm-pack-all:ohpm install -g npm-pack-all。

      ohpm install –g husky(npm-pack-all依赖)。

    2. 下载所需依赖包:ohpm install –g + 包名(以下截图以webpack为例)。

    3. 进行全局npm包的路径并制作离线安装包:cd C:\Users\用户名\AppData\Roaming\npm\node_modules\包名,接着运行指令:ohpm-pack-all。

  2. 生成的.tgz文件拷贝到目标PC(无网环境PC),通过npm离线安装指令安装tgz文件。

    1. 成功拷贝到目标PC机之后,执行以下指令:ohpm install XXXX.tgz,即可安装离线安装包。

  3. 成功之后重新配置离线PC中npm的地址路径,将registry路径设置为本地路径。

    1. 这里需要使用Verdaccio工具来搭建源来提供离线开发环境,所以需要在离线PC中装好Verdaccio,安装成功之后运行以下命令:Verdaccio。

    2. 运行成功之后将会在本地搭建一个npm服务器,接着再开启一个cmd窗口执行一下命令:ohpm config set registry http://127.0.0.1:4873,然后再执行npm config get registry(查看设置成功没有)。

  4. npm本地服务器搭好之后,进入相应项目目录即可更新依赖项,到项目目录下执行以下命令即可在无网环境下更新项目的npm依赖库。

    1. ohpm install。

    2. 注:如若出现以下问题,是因为本地库缺少依赖,需要从有网环境下拷贝过来(跟上面同操作)。

17、关于多个har依赖问题

例如:harA依赖harB和harC,harB依赖harC,如何构建依赖。

A:如下

  1. 直接依赖和间接依赖都上仓,采取版本号形式依赖!

  2. 如果不上传仓库,推荐使用:直接依赖和间接依赖的har包都获取了放到工程中,用overrides指向工程中的har包路径。

  3. 如果子依赖是本地har依赖,则需要放到直接依赖的模块里面去依赖然后构建出.har给其他工程用例如:A依赖B.har,B.har依赖C.har,那么构建B.har的时候,C.har需要放到B模块中去依赖构建出B.har。这种方式最终是会有多份。

更多详情查看:文档中心

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值