HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了?
HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了? 编译构建的时候出现的问题,不知道咋了?这个怎么解决呢?谁遇到过?


更多关于HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,您可以检查一下CMakeLists.txt第15行所有的配置是否正确,如果还是不能解决您的问题,麻烦您这边提供完整的日志信息或者能复现问题的完整demo吧。
更多关于HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
hvigor WARN: CMake Generate step failed. Build files cannot be regenerated correctly.
hvigor ERROR: Failed :entry:default@BuildNativeWithCmake… hvigor ERROR: Exceptions happened while executing D:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\native\build-tools\cmake\bin\cmake.exe -DOHOS_STL=c++_shared -DRES_DIR=F:/Users/zhuxiaokun/NewProject_2/build/harmonyos-next -DCOMMON_DIR=F:/Users/zhuxiaokun/NewProject_2/native/engine/common -DOPENHARMONY=1 -HF:\Users\zhuxiaokun\NewProject_2\native\engine\harmonyos-next -BF:\Users\zhuxiaokun\NewProject_2\native\engine\harmonyos-next\entry.cxx\default\default\debug\x86_64 -DOHOS_ARCH=x86_64 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=F:\Users\zhuxiaokun\NewProject_2\native\engine\harmonyos-next\entry\build\default\intermediates\cmake\default\obj\x86_64 -DCMAKE_BUILD_TYPE=Debug -DOHOS_SDK_NATIVE=D:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\native -DCMAKE_SYSTEM_NAME=OHOS -DCMAKE_OHOS_ARCH_ABI=x86_64 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=D:\Program Files\Huawei\DevEco Studio\sdk\default\hms\native\build\cmake\hmos.toolchain.cmake -GNinja -DCMAKE_MAKE_PROGRAM=D:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\native\build-tools\cmake\bin\ninja.exe --no-warn-unused-cli -DHMOS_SDK_NATIVE=D:\Program Files\Huawei\DevEco Studio\sdk\default\hms\native. Not searching for unused variables given on the command line. – The CXX compiler identification is Clang 15.0.4 – Detecting CXX compiler ABI info – Detecting CXX compiler ABI info - done – Check for working CXX compiler: D:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/llvm/bin/clang++.exe - skipped – Detecting CXX compile features – Detecting CXX compile features - done – The C compiler identification is Clang 15.0.4 – The ASM compiler identification is Clang 15.0.4 with GNU-like command-line – Found assembler: D:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/llvm/bin/clang.exe – Detecting C compiler ABI info – Detecting C compiler ABI info - done – Check for working C compiler: D:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/llvm/bin/clang.exe - skipped – Detecting C compile features – Detecting C compile features - done – platform: OHOS – Ignore NO_WERROR CMake Deprecation Warning at D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/templates/cmake/common.cmake:9 (cmake_policy): The OLD behavior for policy CMP0111 will be removed from a future version of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. Call Stack (most recent call first): D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/cmake/predefine.cmake:377 (include) D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/CMakeLists.txt:2 (include) F:/Users/zhuxiaokun/NewProject_2/native/engine/common/CMakeLists.txt:52 (include) CMakeLists.txt:23 (include)
– OPTION BUILTIN_COCOS_X_PATH: – OPTION USE_BUILTIN_EXTERNAL: OFF – OPTION USE_MODULES: OFF – OPTION CC_USE_METAL: – OPTION CC_USE_GLES3: ON – OPTION CC_USE_GLES2: OFF – OPTION CC_USE_VULKAN: OFF – OPTION CC_DEBUG_FORCE: OFF – OPTION USE_SE_V8: OFF – OPTION USE_SE_JSVM: ON – OPTION USE_V8_DEBUGGER: ON – OPTION USE_V8_DEBUGGER_FORCE: OFF – OPTION USE_SE_SM: OFF – OPTION USE_SOCKET: ON – OPTION USE_AUDIO: ON – OPTION USE_EDIT_BOX: ON – OPTION USE_VIDEO: ON – OPTION USE_WEBVIEW: ON – OPTION USE_MIDDLEWARE: ON – OPTION USE_DRAGONBONES: ON – OPTION USE_SPINE: ON – OPTION USE_SPINE_3_8: ON – OPTION USE_SPINE_4_2: OFF – OPTION USE_WEBSOCKET_SERVER: OFF – OPTION USE_PHYSICS_PHYSX: OFF – OPTION USE_JOB_SYSTEM_TBB: OFF – OPTION USE_JOB_SYSTEM_TASKFLOW: OFF – OPTION USE_XR: OFF – OPTION USE_SERVER_MODE: OFF – OPTION USE_AR_MODULE: OFF – OPTION USE_AR_AUTO: OFF – OPTION USE_AR_CORE: OFF – OPTION USE_AR_ENGINE: OFF – OPTION USE_CCACHE: – OPTION CCACHE_EXECUTABLE: CCACHE_EXECUTABLE-NOTFOUND – OPTION NODE_EXECUTABLE: D:/Program Files/Huawei/DevEco Studio/tools/node/node.exe – OPTION NET_MODE: 0 – OPTION USE_REMOTE_LOG: OFF – OPTION USE_BOX2D_JSB: OFF – platform path: – Try generating /Pre-AutoLoadPlulgins.cmake – execute D:/Program Files/Huawei/DevEco Studio/tools/node/node.exe plugin_parser.js [searching plugins] directory /native does not exist [searching plugins] directory /extensions does not exist [searching plugins] no plugins found! – Searching hook files Pre*.cmake or Pre.cmake in – No plugins are loaded! – Searching hook files Post.cmake or *Post.cmake in – Configuring done (3.9s) CMake Error in CMakeLists.txt: Imported target “websockets” includes non-existent path
"D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/external/cmake/../openharmony/x86_64/include/websockets"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
-
The path was deleted, renamed, or moved to another location.
-
An install or uninstall procedure did not complete successfully.
-
The installation package was faulty and references files it does not provide.
CMake Error in CMakeLists.txt: Imported target “websockets” includes non-existent path
"D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/external/cmake/../openharmony/x86_64/include/websockets"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
-
The path was deleted, renamed, or moved to another location.
-
An install or uninstall procedure did not complete successfully.
-
The installation package was faulty and references files it does not provide.
– Generating done (0.4s) CMake Generate step failed. Build files cannot be regenerated correctly. undefined
- Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
hvigor ERROR: BUILD FAILED in 7 s 5 ms
Process finished with exit code -1
版本是3.8.8
开发者您好,根据这段报错: Imported target “websockets” includes non-existent pathD:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/external/cmake/…/openharmony/x86_64/include/websockets
-
The path was deleted, renamed, or moved to another location.
-
An install or uninstall procedure did not complete successfully.
-
The installation package was faulty and references files it does not provide. 此路径D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/external/cmake/…/openharmony/x86_64/include/websockets可能已被删除、重命名或移动到其他位置,请您找到正确的路径地址,正确配置下即可。 如果想正确设置源码路径和头文件路径:设置源码路径和头文件路径,如include_directories(${NATIVERENDER_ROOT_PATH} ${NATIVERENDER_ROOT_PATH}/include); 详细可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/build-with-ndk-prebuilts#直接引入预构建库,
-
cocoscreater 3.8.8 新建的项目,构建成HarmonyOSNext,编译HAP没问题。但是编译APP和出现以下问题?
编译APP出现的问题:

“D:\Program Files\Huawei\DevEco Studio\tools\node\node.exe” “D:\Program Files\Huawei\DevEco Studio\tools\hvigor\bin\hvigorw.js” --mode project -p product=default assembleApp --analyze=normal --parallel --incremental --daemon
> hvigor Finished ::PreBuildApp… after 1 ms
> hvigor WARN: The project has not explicitly set the ‘targetSdkVersion’ version at build-profile.json5. It is recommended to configure it. Reference: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-build-profile-app#section45865492619
> hvigor UP-TO-DATE :entry:default@PreBuild…
> hvigor Finished ::DuplicateDependencyCheck… after 1 ms
> hvigor Finished :entry:default@CreateModuleInfo… after 1 ms
> hvigor UP-TO-DATE :entry:default@GenerateMetadata…
> hvigor Finished :entry:default@ConfigureCmake… after 2 ms
> hvigor UP-TO-DATE :entry:default@MergeProfile…
> hvigor UP-TO-DATE :entry:default@CreateBuildProfile…
> hvigor Finished :entry:default@PreCheckSyscap… after 1 ms
> hvigor Finished :entry:default@GeneratePkgContextInfo… after 11 ms
> hvigor Finished :entry:default@ProcessIntegratedHsp… after 2 ms
> hvigor UP-TO-DATE :entry:default@MakePackInfo…
> hvigor Finished :entry:default@SyscapTransform… after 25 ms
> hvigor UP-TO-DATE :entry:default@ProcessProfile…
> hvigor UP-TO-DATE :entry:default@ProcessRouterMap…
> hvigor UP-TO-DATE :entry:default@ProcessShareConfig…
> hvigor Finished :entry:default@ProcessStartupConfig… after 2 ms
> hvigor UP-TO-DATE :entry:default@ProcessResource…
> hvigor UP-TO-DATE :entry:default@GenerateLoaderJson…
> hvigor UP-TO-DATE :entry:default@CompileResource…
> hvigor Finished :entry:default@BuildJS… after 5 ms
> hvigor WARN: CMake Deprecation Warning at D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/templates/cmake/common.cmake:9 (cmake_policy): The OLD behavior for policy CMP0111 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD.
> hvigor WARN: Call Stack (most recent call first): D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/cmake/predefine.cmake:377 (include) D:/ProgramData/cocos/editors/Creator/Creator/3.8.8/resources/resources/3d/engine/native/CMakeLists.txt:2 (include) F:/Users/zhuxiaokun/NewProject_3/native/engine/common/CMakeLists.txt:52 (include) CMakeLists.txt:15 (include)
> hvigor Finished :entry:default@BuildNativeWithCmake… after 1 s 893 ms
> hvigor Finished :entry:default@BuildNativeWithNinja… after 230 ms
> hvigor UP-TO-DATE :entry:default@ProcessLibs…
> hvigor UP-TO-DATE :entry:default@DoNativeStrip…
> hvigor UP-TO-DATE :entry:default@CacheNativeLibs…
> hvigor ERROR: Failed :entry:default@CompileArkTS…
> hvigor WARN: 1 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:61:1 “globalThis” is not supported (arkts-no-globalthis) 2 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:65:1 “globalThis” is not supported (arkts-no-globalthis) 3 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:69:1 “globalThis” is not supported (arkts-no-globalthis) 4 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:73:1 “globalThis” is not supported (arkts-no-globalthis) 5 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:77:1 “globalThis” is not supported (arkts-no-globalthis) 6 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:82:1 “globalThis” is not supported (arkts-no-globalthis) 7 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:89:34 “globalThis” is not supported (arkts-no-globalthis) 8 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:92:5 “globalThis” is not supported (arkts-no-globalthis) 9 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:101:1 “globalThis” is not supported (arkts-no-globalthis) 10 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:106:1 “globalThis” is not supported (arkts-no-globalthis) 11 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:117:1 “globalThis” is not supported (arkts-no-globalthis) 12 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:139:1 “globalThis” is not supported (arkts-no-globalthis) 13 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:155:1 “globalThis” is not supported (arkts-no-globalthis) 14 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:157:1 “globalThis” is not supported (arkts-no-globalthis) 15 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:165:1 “globalThis” is not supported (arkts-no-globalthis) 16 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:173:1 “globalThis” is not supported (arkts-no-globalthis) 17 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:181:1 “globalThis” is not supported (arkts-no-globalthis) 18 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/cocos/oh-adapter/sys-ability-polyfill.ets:189:1 “globalThis” is not supported (arkts-no-globalthis) 19 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/workers/cocos_worker.ets:66:1 “globalThis” is not supported (arkts-no-globalthis) 20 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/workers/cocos_worker.ets:70:1 “globalThis” is not supported (arkts-no-globalthis) 21 WARN: ArkTS:WARN: For details about ArkTS syntax errors, see FAQs 22 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/entryability/EntryAbility.ets:56:5 Function may throw exceptions. Special handling is required. 23 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/common/WorkerPort.ts:88:7 Function may throw exceptions. Special handling is required. 24 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/common/WorkerPort.ts:93:5 Function may throw exceptions. Special handling is required. 25 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:265:36 ‘px2vp’ has been deprecated. 26 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:266:36 ‘px2vp’ has been deprecated. 27 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:267:36 ‘px2vp’ has been deprecated. 28 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:268:36 ‘px2vp’ has been deprecated. 29 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:296:34 ‘px2vp’ has been deprecated. 30 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:297:34 ‘px2vp’ has been deprecated. 31 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:298:34 ‘px2vp’ has been deprecated. 32 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:299:34 ‘px2vp’ has been deprecated. 33 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:350:21 ‘getContext’ has been deprecated. 34 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/pages/index.ets:398:8 ‘getContext’ has been deprecated. 35 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/workers/ui_port.ts:88:7 Function may throw exceptions. Special handling is required. 36 WARN: ArkTS:WARN File: F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/src/main/ets/workers/ui_port.ts:93:5 Function may throw exceptions. Special handling is required.
> hvigor ERROR: 10311009 ArkTS: ERROR Error Message: Failed to execute es2abc.
- Try the following: > Please refer to es2abc’s error codes. 1 ERROR: 10705000 Syntax Error Error Message: Primary expression expected [F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/build/default/cache/default/default@CompileArkTS/esmodule/release/entry/src/main/ets/cocos/src/cocos-js/cc.js:32495:813] 2 ERROR: Error Message: The size of programs is expected to be 28, but is 27
COMPILE RESULT:FAIL {ERROR:3 WARN:36}
- Try: > Run with --stacktrace option to get the stack trace. > Run with --debug option to get more log output. > hvigor ERROR: BUILD FAILED in 39 s 5 ms
Process finished with exit code -1
开发者您好,编译报错错误码"10311009",出现该问题的原因是在执行es2abc二进制文件时出现了问题,需要参考es2abc执行过程中的具体报错信息:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-es2abc。详细参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-ets-loader#section10311009-es2abc执行错误,
这里提示“Error Message:Primary expression expected”,通常表示代码中缺少必要的表达式或存在语法结构不完整。请检查[F:/Users/zhuxiaokun/NewProject_3/native/engine/harmonyos-next/entry/build/default/cache/default/default@CompileArkTS/esmodule/release/entry/src/main/ets/cocos/src/cocos-js/cc.js:32495:813]处是否存在语法错误。
从错误信息(CMake Generate step failed + Cocos Creator 的 CMake 配置)来看,问题核心是Cocos Creator 生成的CMakeLists.txt与 OpenHarmony 的 Native 编译环境不兼容,结合具体报错细节,解决方案分以下几步:
一、先解决 CMake 政策弃用的警告(触发构建失败的直接原因)
错误中提到CMake Deprecation Warning at ... CMP0111,这是 CMake 政策弃用导致的兼容性问题,需要在CMakeLists.txt开头添加政策兼容配置:
打开项目中的CMakeLists.txt,在文件最顶部添加:
# 解决CMP0111政策弃用的问题
if(POLICY CMP0111)
cmake_policy(SET CMP0111 NEW)
endif()
二、调整 Cocos 的图形 API 配置(适配 OpenHarmony)
你的CMakeLists.txt中开启了CC_USE_METAL: ON,但OpenHarmony 设备不支持 Metal 图形 API(Metal 是苹果专属),需改为 OpenHarmony 支持的 GLES:
在CMakeLists.txt中找到以下配置项,修改为:
# 关闭Metal(OpenHarmony不支持)
OPTION CC_USE_METAL: OFF
# 开启OpenHarmony支持的GLES3
OPTION CC_USE_GLES3: ON
三、清理构建缓存(解决 hvigor/CMake 的缓存冲突)
之前的失败构建会残留缓存文件,导致重新构建仍失败,需手动清理:
- 关闭 DevEco Studio;
- 删除项目根目录下的
build、.ohpm、cmake-build文件夹; - 删除系统临时缓存:
- Windows:删除
C:\Users\你的用户名\.ohos\目录下的缓存文件; - Mac:删除
~/Library/Developer/Huawei/目录下的缓存文件。
- Windows:删除
四、重新配置 DevEco Studio 的 Native 工具链
确保 DevEco Studio 的 OpenHarmony SDK 中Native 工具链已完整安装:
- 打开 DevEco Studio →
File→Settings→Appearance & Behavior→System Settings→HarmonyOS SDK; - 切换到
OpenHarmony标签,检查Native分类下的工具链(比如native-llvm)是否已安装,若未安装则勾选安装; - 确认 SDK 路径无空格 / 中文(你的路径
D:\Program Files\Huawei\...有空格,建议临时改为无空格路径,比如D:\DevEcoSDK\)。
五、重新构建项目
- 重启 DevEco Studio;
- 点击顶部菜单栏的
Build→Clean Project; - 等待项目同步完成后,点击
Build→Build Hap(s)/App(s)重新构建。
补充:若仍失败(排查 Cocos 与 OpenHarmony 的适配问题)
如果是 Cocos Creator 导出的 OpenHarmony 项目,需确保:
- Cocos Creator 版本≥3.8.10(该版本后对 OpenHarmony Native 编译的支持更完善);
- 导出项目时选择的平台是
OpenHarmony,而非Android/iOS; - 检查项目中是否有 Cocos 的依赖库未适配 OpenHarmony(比如某些第三方插件),可临时注释无关依赖后再尝试构建。
Cocos Creator 版本≥3.8.10 没出来呀? 你那边能编译过吗?
写错了,是3.8.8,适配HarmonyOS 6.0.1 (21)。之前做了个博物馆的项目,编译测试过。
编译过能在虚拟机上跑吗?
鸿蒙Next编译问题可能由以下原因导致:
- SDK版本与项目配置不匹配,需检查build.gradle或oh-package.json中的依赖版本。
- 资源文件(如图片、布局)命名不规范或格式错误,需按规范调整。
- 模块间依赖关系未正确定义,需检查模块配置文件。
- 开发环境(如DevEco Studio版本、Node.js)未满足要求,需升级或重装。
建议查看具体报错日志定位问题。
根据你提供的两张错误截图,问题很明确,是ArkTS语法规范检查(ArkTS Linter) 和 Hvigor构建工具 报出的错误。这不是编译错误,而是代码规范检查和项目配置问题,阻止了构建流程继续。
具体原因和解决方案如下:
问题一:ArkTS Linter 语法错误(第一张图)
错误信息:This syntax requires an imported helper named '__spreadArray' which is not available.
根本原因:你在代码中使用了ES6+的扩展运算符(...)语法来操作数组,但当前项目的编译目标或语言版本设置不支持此语法,或者相关的编译时辅助函数未正确引入。
解决方案:
- 检查并修改代码:避免在HarmonyOS Next的ArkTS中使用这种高级数组扩展语法。改用传统的数组操作方法,例如:
- 用
concat()替代数组合并。 - 用
slice()或循环复制数组。 - 直接使用数组索引赋值。
- 用
- 检查
tsconfig.json:确认项目中的tsconfig.json文件,compilerOptions下的target和lib设置是否与HarmonyOS Next的开发要求一致。通常应设置为"ESNext"并包含合适的库文件,但需以官方文档为准。不正确的设置可能导致语言特性支持不全。
问题二:Hvigor 构建配置错误(第二张图)
错误信息:A problem occurred configuring project ':entry'. > Failed to notify project evaluation listener. > ... Caused by: org.gradle.api.GradleException: compileSdkVersion and compatibleSdkVersion cannot be set to the same value.
根本原因:在你的模块(例如entry)的 build-profile.json5 文件中,compileSdkVersion(编译SDK版本)和 compatibleSdkVersion(兼容SDK版本)被设置为相同的值。这是HarmonyOS Next构建系统所不允许的。
解决方案:
- 打开你的应用模块(如
entry)下的build-profile.json5文件。 - 找到
compileSdkVersion和compatibleSdkVersion字段。 - 确保它们的值不相同。通常,
compatibleSdkVersion应设置为一个比compileSdkVersion更低的版本,以声明应用兼容的旧版SDK。例如:
请根据你实际使用的SDK版本进行调整。{ "app": { "signingConfigs": {}, "products": [], "compileSdkVersion": 11, // 使用SDK 11进行编译 "compatibleSdkVersion": 10 // 兼容SDK 10及以上版本 } }
总结与操作步骤
- 首先解决第二个问题(版本冲突):修改
build-profile.json5,确保compileSdkVersion和compatibleSdkVersion值不同。 - 然后解决第一个问题(语法错误):修改代码,将数组扩展运算符
...的用法替换为ArkTS更稳定支持的语法。 - 完成上述修改后,清理并重新构建项目(在DevEco Studio中选择
Build > Clean Project,然后Build > Build Project)。
这两个问题修正后,你的项目应该能顺利通过构建。

