1、环境诊断、创建工程/模块界面全部显示空白
A:导致该问题的可能原因为电脑GPU不兼容,或在云桌面的场景下使用DevEco Studio。
在DevEco Studio中双击Shift,在弹出的窗口中搜索Registry...,在Registry页面中勾选ide.browser.jcef.gpu.disable项,关闭窗口并重启DevEco Studio即可。
2、打开历史工程,报错提示“Install failed FetchPackageInfo: hypium failed”
A:导致该问题的可能原因为包名使用错误。在工程级oh-package.json5中,将devDependencies字段下"hypium"修改为"@ohos/hypium"。hypium具体版本信息请参考配套关系。
3、如何将HSP(动态共享包)转为HAR(静态共享包)
A:如下步骤
-
在HSP下的module.json5中,把"type": "shared"修改为"type": "har",删除"deliveryWithInstall"、"pages"字段。
-
删除HSP中的页面,如果要以页面的形式使用到的话,就需要改为命名路由/navigation的写法。
-
然后再找到HSP下的hvigorfile.ts文件,将里面的hspTasks改为harTasks。
-
最后编译该模块即可。如果编译过程中遇到其他错误,按照提示找到对应位置修改即可。
4、如何将HAR(静态共享包)转为HSP(动态共享包)
A:如下步骤
-
新建一个HSP,将HAR包拷过来放到一个lib目录,在HSP的oh-package.json5里的dependencies下配置HAR包。
"dependencies": { "myhar": "file:https://blog.csdn.net/qq_45789342/article/details/lib/myHar.har" // myHar.har路径:oh-package.json5文件同目录下的lib文件夹下面}
-
在HSP的Index.ets里直接导出HAR的内容。
export * as myhar from 'myhar';
-
最后编译该HSP即可。
5、打印较长的日志内容时,DevEco Studio控制台如何设置
A:如下
-
可以导出日志:Help->Show Log in Explorer。
-
可以改变DevEco控制台的日志输出设置:File->setting->Editor->General->Console下,点击Override console cycle buffer size选项,自定义大小。
6、DevEco Studio如何自动install依赖
A:DevEco Studio在以下三种场景会自动install依赖:
-
打开工程,自动install所有模块中的依赖。
-
手动点击File > Sync and Refresh Project,自动install所有模块中的依赖。
-
手动点击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
在a.har根目录下的Index.ets文件中,添加如下内容:
外部调用
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:xxxHarmonyOS-NEXT-DP1”错误
A:如下步骤
1、打开任务管理器
2、切换到“性能”页签
3、点击下方“打开资源监视器”
4、把上方提示的路径D:xxxHarmonyOS-NEXT-DP1粘贴到关联的句柄窗口右侧搜索栏,回车搜索占用的进程,结束该进程即可。
13、.h文件中uint8_t无法使用如何解决?
A:如下
-
在CPP导入头文件修改如下:
#ifdef __cplusplusextern “C” {#endif#include “MGDolphinTOTP.h”#include “MGDolphinTOTPsha1.h”#ifdef __cplusplus}#endif
-
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:添加新的远程仓库:
-
右击Remote调出菜单。
-
点击Manage Remotes,打开Git Remotes窗口。
-
点击添加按钮。
-
输入远程仓名称和URL,远程仓名称自己自由命名。
-
点击Define Remote窗口的OK按钮,在新弹出的窗口中输入域账号和密码。
-
点击Git Remotes窗口的OK按钮。
-
点击拉取远程所有远程记录,新添加的远程仓库会在Remote下子菜单中显示出来。
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工具(可通过以下安装离线包的方式来安装工具)。
-
在有网环境下将所需依赖通过npm-pack-all工具包将所有依赖项打包成.tgz文件。
-
安装npm-pack-all:ohpm install -g npm-pack-all。
ohpm install –g husky(npm-pack-all依赖)。
-
下载所需依赖包:ohpm install –g + 包名(以下截图以webpack为例)。
-
进行全局npm包的路径并制作离线安装包:cd C:Users用户名AppDataRoaming pm ode_modules包名,接着运行指令:ohpm-pack-all。
-
-
生成的.tgz文件拷贝到目标PC(无网环境PC),通过npm离线安装指令安装tgz文件。
-
成功拷贝到目标PC机之后,执行以下指令:ohpm install XXXX.tgz,即可安装离线安装包。
-
-
成功之后重新配置离线PC中npm的地址路径,将registry路径设置为本地路径。
-
这里需要使用Verdaccio工具来搭建源来提供离线开发环境,所以需要在离线PC中装好Verdaccio,安装成功之后运行以下命令:Verdaccio。
-
运行成功之后将会在本地搭建一个npm服务器,接着再开启一个cmd窗口执行一下命令:ohpm config set registry http://127.0.0.1:4873,然后再执行npm config get registry(查看设置成功没有)。
-
-
npm本地服务器搭好之后,进入相应项目目录即可更新依赖项,到项目目录下执行以下命令即可在无网环境下更新项目的npm依赖库。
-
ohpm install。
-
注:如若出现以下问题,是因为本地库缺少依赖,需要从有网环境下拷贝过来(跟上面同操作)。
-
17、关于多个har依赖问题
例如:harA依赖harB和harC,harB依赖harC,如何构建依赖。
A:如下
-
直接依赖和间接依赖都上仓,采取版本号形式依赖!
-
如果不上传仓库,推荐使用:直接依赖和间接依赖的har包都获取了放到工程中,用overrides指向工程中的har包路径。
-
如果子依赖是本地har依赖,则需要放到直接依赖的模块里面去依赖然后构建出.har给其他工程用例如:A依赖B.har,B.har依赖C.har,那么构建B.har的时候,C.har需要放到B模块中去依赖构建出B.har。这种方式最终是会有多份。