HarmonyOS鸿蒙Next中hb set问题
HarmonyOS鸿蒙Next中hb set问题 执行hb set 报以下错误:
使用的是LINUX 虚拟机 希望同僚支持哇!
更多关于HarmonyOS鸿蒙Next中hb set问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
先尝试安装一下日志中缺失的依赖,再重新执行呢?
安装命令:pip install prompt-toolkit
更多关于HarmonyOS鸿蒙Next中hb set问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
感觉还是一样的呀,还是报那个 [OHOS ERROR] File "/home/chinesewts/OpenHarmony/Neptune_w800/Neptune_w800_code/build/lite/hb_internal/cts/prompt.py", line 21, in <module> [OHOS ERROR] from prompt_toolkit.shortcuts import run_application [OHOS ERROR] ModuleNotFoundError: No module named 'prompt_toolkit' [OHOS ERROR] Unhandled error: No module named 'prompt_toolkit'
repo init -u [https://gitee.com/openharmony/manifest](https://gitee.com/openharmony/manifest) -b OpenHarmony-3.2-Release --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
重新下载的3.2分支的代码,之后执行`bash build/prebuilts_download.sh`要全部成功才行。
再之后根据文档配置[https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/quick-start/quickstart-pkg-install-tool.md/](https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/quick-start/quickstart-pkg-install-tool.md/)
执行hb set之后根据文档输入.而不是直接回车,稀里糊涂好使了,但是呢,下一个问题就是编译不过......不管是W800平台的还是Hi3861,都有错误。
[OHOS ERROR] [780/811] ACTION //device/soc/hisilicon/hi3861v100/sdk_liteos:run_wifiiot_scons(//build/lite/toolchain:riscv32-unknown-elf)
[OHOS ERROR] FAILED: obj/device/soc/hisilicon/hi3861v100/sdk_liteos/run_wifiiot_scons_build_ext_components.txt
[OHOS ERROR] /home/chinesewts/OpenHarmony/release32_0711/prebuilts/python/linux-x86/3.9.2/bin/python3 ../../../build/lite/build_ext_components.py --path=../../../device/soc/hisilicon/hi3861v100/sdk_liteos --command=sh\ hm_build.sh\ /home/chinesewts/OpenHarmony/release32_0711/out/hispark_pegasus/wifiiot_hispark_pegasus\ linux --target_dir=/home/chinesewts/OpenHarmony/release32_0711/out/hispark_pegasus/wifiiot_hispark_pegasus/obj/device/soc/hisilicon/hi3861v100/sdk_liteos/build.log --out_dir=/home/chinesewts/OpenHarmony/release32_0711/out/hispark_pegasus/wifiiot_hispark_pegasus/error.log
[OHOS ERROR] execute ota_builder with python...
[OHOS ERROR] riscv32-unknown-elf-gcc -Iplatform/os/Huawei_LiteOS/kernel/include -Iconfig -DCONFIG_TEE_HUKS_SUPPORT -DCONFIG_CHIP_PKT_32K -DHI_BOARD_ASIC -DHI_ON_FLASH -E build/link/system_config.ld.S -o build/build_tmp/scripts/system_config.ld -P
[OHOS ERROR] nvimg_builder(["build/build_tmp/scripts/system_config.ld"], ["build/link/system_config.ld.S"])
[OHOS ERROR] product_name_list: ['sta']
[OHOS ERROR] xml h file: /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv
[OHOS ERROR] /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta
[OHOS ERROR] app_subver_list: ['demo']
[OHOS ERROR] current subver_name:demo
[OHOS ERROR] root_dir: /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool
[OHOS ERROR] mdm_xml: /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml
[OHOS ERROR] HNV NAME:mss_nvi_db.xml
[OHOS ERROR] nv_tool: /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/tools/nv/cdbm
[OHOS ERROR] app_subver_temp_dir:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo
[OHOS ERROR] mdmxml:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml
[OHOS ERROR] src_xml_list: ['/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/xml_file/mss_nvi_db.xml']
[OHOS ERROR] combin_xml:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/mss_nvi_db.xml
[OHOS ERROR] root_list [<Element 'HISTUDIO' at 0x7f6d5c82fef0>]
[OHOS ERROR] hi_nv_modify_by_cfg
[OHOS ERROR] cfg_file: nv
[OHOS ERROR]
[OHOS ERROR] cmd_line= ('/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/tools/nv/cdbm', '/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv.xml', '/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv', '/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv')
[OHOS ERROR] /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv.xml
[OHOS ERROR] /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv
[OHOS ERROR] /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/Hi3861_wifiiot_app/outside_demo/nv
[OHOS ERROR] ===========Init HDB Start===========
[OHOS ERROR] *********strDataTypeDefPath:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_modem_struct_def.txt
[OHOS ERROR] *********strDataTypeDefPath:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_modem_struct_def.txt
[OHOS ERROR] *********strDataTypeDefPath:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/h_file/nv/../nv/nv_factory_struct_def.txt
[OHOS ERROR] ===========Init HDB finish===========
[OHOS ERROR] ===========Write NV Buffer To File===========
[OHOS ERROR] ===========Write NV Buffer Finish===========
[OHOS ERROR] RETURN VALUE:0
[OHOS ERROR] dst_hnv= /home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/hnv/Hi3861_wifiiot_app.hnv
[OHOS ERROR] Factory NV total num:10
[OHOS ERROR] NV_FILE_STRU :28
[OHOS ERROR] Factory NV total size:824
[OHOS ERROR] Normal NV total num:13
[OHOS ERROR] NV_FILE_STRU :28
[OHOS ERROR] Normal NV total size:766
[OHOS ERROR] build hnv OK:/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/tools/nvtool/out_nv_bin/sta/nv/hnv/Hi3861_wifiiot_app.hnv
[OHOS ERROR] ENDING
[OHOS ERROR] riscv32-unknown-elf-gcc -Iplatform/os/Huawei_LiteOS/kernel/include -Iconfig -DCONFIG_TEE_HUKS_SUPPORT -DCONFIG_CHIP_PKT_32K -DHI_BOARD_ASIC -DHI_ON_FLASH -DFLASH_FIRM_START=4248512 -E build/link/link.ld.S -o build/build_tmp/scripts/link.lds -P
[OHOS ERROR] riscv32-unknown-elf-ld -nostartfiles -nostdlib -static --gc-sections -L/home/chinesewts/OpenHarmony/release32_0711/device/soc/hisilicon/hi3861v100/sdk_liteos/build/scripts/../../../../../huawei/hms/hilink/ohos/l0/hi3861/lib/wifi -L/home/chinesewts/gcc_riscv32/bin/../lib/gcc/riscv32-unknown-elf/7.3.0 -Lbuild/build_tmp/libs/app/wifiiot_app -Lbuild/build_tmp/libs/components/at -Lbuild/build_tmp/libs/platform/drivers -Lbuild/build_tmp/libs/platform/system -Lbuild/build_tmp/scripts -Lbuild/libs -Lbuild/libs/hi3861/release/no_mesh -Lbuild/scripts -Lohos/libs -Tbuild/build_tmp/scripts/link.lds -Map=output/bin/Hi3861_wifiiot_app.map -o output/bin/Hi3861_wifiiot_app.out --start-group -ladc -lat -lc_flash -lcfg -lcoap -lcpup -ldiag -ldrv -lflash -lgcc -lgpio -lhistreaminglink -lio -liperf -llitekernel_flash -lltoswpa -llwip -lm_flash -lmbedtls -lmqtt -lparttab -lres_cfg -lsdio -lsec_flash -lspiffs -lsystem -ltsensor -luart -lupg -lwifi -lwifi_flash -lwifiiot_app -lwpa --whole-archive -lbroadcast -lnstackx_util.open -lsamgr -lsamgr_adapter -ldeviceauth_hal_liteos -lhal_iothardware -lhal_update_static -lbootstrap -lwifiservice -lcmsis -lhichainsdk -lcjson_static -lhidumper_mini -lparam_client_lite -lnstackx_ctrl -linithook -lnative_file -lhiview_lite_static -lsamgr_source -lhal_sys_param -lhilog_static -lsoftbus_utils -lutils_kv_store -lposix -lhal_wifiaware -lblackbox -lhievent_lite_static -linit_log -lbegetutil -lmbedtls -lhilog_lite_static -lhota -lwifiaware -lhal_sysparam -lsoftbus_client -ldeviceauth -lsoftbus_adapter -linit_utils -lhal_file_static -lhuks_3.0_sdk -lsoftbus_server_frame --no-whole-archive --end-group
[OHOS ERROR] riscv32-unknown-elf-ld:build/libs/libhistreaminglink.a: file format not recognized; treating as linker script
[OHOS ERROR] riscv32-unknown-elf-ld:build/libs/libhistreaminglink.a:1: syntax error
[OHOS ERROR] scons: *** [output/bin/Hi3861_wifiiot_app.out] Error 1
[OHOS ERROR] BUILD FAILED!!!!
[OHOS ERROR] Failed building output/bin/Hi3861_wifiiot_app.out: Error 1
[OHOS INFO] c targets overlap rate statistics
[OHOS INFO] subsystem files NO. percentage builds NO. percentage overlap rate
[OHOS INFO] commonlibrary 1 0.2% 1 0.2% 1.00
[OHOS INFO] communication 210 35.7% 210 35.7% 1.00
[OHOS INFO] distributeddatamgr 2 0.3% 2 0.3% 1.00
[OHOS INFO] hiviewdfx 17 2.9% 17 2.9% 1.00
[OHOS INFO] security 176 29.9% 176 29.9% 1.00
[OHOS INFO] startup 24 4.1% 24 4.1% 1.00
[OHOS INFO] systemabilitymgr 15 2.5% 15 2.5% 1.00
[OHOS INFO] test 25 4.2% 25 4.2% 1.00
[OHOS INFO] third_party 93 15.8% 93 15.8% 1.00
[OHOS INFO] thirdparty 93 15.8% 93 15.8% 1.00
[OHOS INFO] updater 4 0.7% 4 0.7% 1.00
[OHOS INFO] xts 25 4.2% 25 4.2% 1.00
[OHOS INFO]
[OHOS INFO] c overall build overlap rate: 1.00
[OHOS INFO]
[OHOS INFO]
[OHOS ERROR] Please check build log in /home/chinesewts/OpenHarmony/release32_0711/out/hispark_pegasus/wifiiot_hispark_pegasus/build.log
真是太麻烦了。
3861编译过了,目前看,应该是在下载代码的时候缺少执行了repo forall -c 'git lfs pull'
这个注意一下,至于润和的Neptune100开发板,我怀疑后续没有做适配,只有1.1的版本可用。
如图所示,执行完hb set之后,会生成ohos_config.json文件,但终端会报错。该文件内容如图所示,有一行目录为空。
根据报错的路径发现,代码中没有终端所示的这个路径,相似路径为Neptune_w800_code/device/board/hihope/neptune100。但是手动更改之后编译,还是会报错误。
我准备从主干重新下载代码试一下
这个还是推荐你在issue或者加一下润和相关的群咨询一下,因为不同版本的OH源码,可能实现之间有一定的差异,我上面的只是一个示例。
不得不说,这环境配起来是真复杂啊,对于新手挺不友好的。
我在Linux虚拟机上编译的,具体情况我在下一层楼说明。
我勒个去,很有可能是“hb版本和源码版本不匹配”。
大版本以为这个问题卡主了,于是只好找Neptune模组的那个旧版本,寻思先编译一下熟悉熟悉编译流程,搞个demo啥的。哪知道在旧版本里使用hb set,报错
百度了一下,说是大概率是由于hb版本和源码版本不匹配。
https://blog.csdn.net/lw_2352/article/details/123199862
于是按着这位同僚的建议,执行了
1.卸载当前版本hb
python3 -m pip uninstall ohos-build
2.到源码根目录下直接安装对应版本hb
pip3 install build/lite
之后老版本就可以用了,我之后试了一下下的大版本,发现也好使了。真是有毒。。。。。。
不过执行完了还有个错误,我再看看,不过hb set起码可以执行了进行平台选择了。
该方法无法解决问题,还请注意。会报invali path错误。
执行命令之后还是这样。
我是根据这个配置的Neptune/doc/1.环境搭建与编译.md · HiHope开源社区/Docs - Gitee.com
我又搜了下,有建议删除重装的,你可以试试。实在不行,推荐你到对应的仓库下面提issue,估计能获得润和比较专业的帮助。
删除重新装,您是说重新下一遍代码是吧。目前看我代码是从这下的https://gitee.com/openharmony-sig/manifest,没问题吧。
现在是遇到另外一个问题了,就是执行hb set选择我完之后,会报invalid path(详见下面3楼),看了一下是说明的路径和工程实际的路径不一样,导致那个.json无法创建路径。我尝试手动添加也不行。这个您看下呢。
在HarmonyOS鸿蒙Next中,hb set
命令用于设置当前项目的根目录。执行该命令后,系统会记录当前目录为项目的根目录,后续的构建和编译操作将基于该目录进行。如果遇到hb set
命令无法正常使用的问题,可以检查以下几点:
- 确保
hb
命令已正确安装,并且其路径已添加到系统的环境变量中。 - 确认当前目录下存在
ohos_config.json
或bundle.json
等配置文件,这些文件是hb set
命令识别项目根目录的关键。 - 确保当前用户对项目目录有足够的读写权限。
如果问题仍未解决,可以尝试重新安装DevEco Studio或更新HarmonyOS SDK。