HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了?

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

cke_913.jpeg

cke_363.jpeg


更多关于HarmonyOS鸿蒙Next编译时候出现的问题,这是咋了?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

开发者您好,您可以检查一下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出现的问题:

cke_2675.png

“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 的缓存冲突)

之前的失败构建会残留缓存文件,导致重新构建仍失败,需手动清理:

  1. 关闭 DevEco Studio;
  2. 删除项目根目录下的build.ohpmcmake-build文件夹;
  3. 删除系统临时缓存:
    • Windows:删除C:\Users\你的用户名\.ohos\目录下的缓存文件;
    • Mac:删除~/Library/Developer/Huawei/目录下的缓存文件。

四、重新配置 DevEco Studio 的 Native 工具链

确保 DevEco Studio 的 OpenHarmony SDK 中Native 工具链已完整安装

  1. 打开 DevEco Studio → FileSettingsAppearance & BehaviorSystem SettingsHarmonyOS SDK
  2. 切换到OpenHarmony标签,检查Native分类下的工具链(比如native-llvm)是否已安装,若未安装则勾选安装;
  3. 确认 SDK 路径无空格 / 中文(你的路径D:\Program Files\Huawei\...有空格,建议临时改为无空格路径,比如D:\DevEcoSDK\)。

五、重新构建项目

  1. 重启 DevEco Studio;
  2. 点击顶部菜单栏的BuildClean Project
  3. 等待项目同步完成后,点击BuildBuild Hap(s)/App(s)重新构建。

补充:若仍失败(排查 Cocos 与 OpenHarmony 的适配问题)

如果是 Cocos Creator 导出的 OpenHarmony 项目,需确保:

  1. Cocos Creator 版本≥3.8.10(该版本后对 OpenHarmony Native 编译的支持更完善);
  2. 导出项目时选择的平台是OpenHarmony,而非Android/iOS
  3. 检查项目中是否有 Cocos 的依赖库未适配 OpenHarmony(比如某些第三方插件),可临时注释无关依赖后再尝试构建。

Cocos Creator 版本≥3.8.10 没出来呀? 你那边能编译过吗?

写错了,是3.8.8,适配HarmonyOS 6.0.1 (21)。之前做了个博物馆的项目,编译测试过。

编译过能在虚拟机上跑吗?

鸿蒙Next编译问题可能由以下原因导致:

  1. SDK版本与项目配置不匹配,需检查build.gradle或oh-package.json中的依赖版本。
  2. 资源文件(如图片、布局)命名不规范或格式错误,需按规范调整。
  3. 模块间依赖关系未正确定义,需检查模块配置文件。
  4. 开发环境(如DevEco Studio版本、Node.js)未满足要求,需升级或重装。
    建议查看具体报错日志定位问题。

根据你提供的两张错误截图,问题很明确,是ArkTS语法规范检查(ArkTS Linter)Hvigor构建工具 报出的错误。这不是编译错误,而是代码规范检查和项目配置问题,阻止了构建流程继续。

具体原因和解决方案如下:

问题一:ArkTS Linter 语法错误(第一张图)

错误信息This syntax requires an imported helper named '__spreadArray' which is not available. 根本原因:你在代码中使用了ES6+的扩展运算符(...)语法来操作数组,但当前项目的编译目标或语言版本设置不支持此语法,或者相关的编译时辅助函数未正确引入。 解决方案

  1. 检查并修改代码:避免在HarmonyOS Next的ArkTS中使用这种高级数组扩展语法。改用传统的数组操作方法,例如:
    • concat() 替代数组合并。
    • slice() 或循环复制数组。
    • 直接使用数组索引赋值。
  2. 检查tsconfig.json:确认项目中的 tsconfig.json 文件,compilerOptions 下的 targetlib 设置是否与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构建系统所不允许的。 解决方案

  1. 打开你的应用模块(如entry)下的 build-profile.json5 文件。
  2. 找到 compileSdkVersioncompatibleSdkVersion 字段。
  3. 确保它们的值不相同。通常,compatibleSdkVersion 应设置为一个比 compileSdkVersion 更低的版本,以声明应用兼容的旧版SDK。例如:
    {
      "app": {
        "signingConfigs": {},
        "products": [],
        "compileSdkVersion": 11, // 使用SDK 11进行编译
        "compatibleSdkVersion": 10 // 兼容SDK 10及以上版本
      }
    }
    
    请根据你实际使用的SDK版本进行调整。

总结与操作步骤

  1. 首先解决第二个问题(版本冲突):修改 build-profile.json5,确保 compileSdkVersioncompatibleSdkVersion 值不同。
  2. 然后解决第一个问题(语法错误):修改代码,将数组扩展运算符 ... 的用法替换为ArkTS更稳定支持的语法。
  3. 完成上述修改后,清理并重新构建项目(在DevEco Studio中选择 Build > Clean Project,然后 Build > Build Project)。

这两个问题修正后,你的项目应该能顺利通过构建。

回到顶部