HarmonyOS鸿蒙Next中es2abc编译问题

HarmonyOS鸿蒙Next中es2abc编译问题 新安装的Deveco Studio,新建ide自带的例子项目,编译不过,

hvigor Finished :entry:default@CacheNativeLibs… after 9 ms hvigor ERROR: Failed :entry:default@CompileArkTS… hvigor ERROR: 10311009 ArkTS: ERROR Error Message: Failed to execute es2abc.

  • Try the following:

Please refer to es2abc’s error codes. 1 ERROR: Error Message: libc++abi: terminating due to uncaught exception of type std::bad_alloc: std::bad_alloc COMPILE RESULT:FAIL {ERROR:2} HarmonyOS 6.0.2 Release SDK, inclusion of OpenHarmony SDK Ohos_sdk_public 6.0.2.130 (API Version 22 Release) as is.


更多关于HarmonyOS鸿蒙Next中es2abc编译问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

开发者您好,根据报错信息来看:libc++abi: terminating due to uncaught exception of type std::bad_alloc: std::bad_alloc是由于内存分配失败导致的报错,可能原因:申请的内存超过系统可用资源,

可以检查下是否存在内存泄漏问题:

  1. 对于可能存在的内存泄漏问题,可以参考Native内存泄漏分析(Allocation分析)ArkTS内存泄漏分析(Snapshot分析)方法进行排查。
  2. 可以使用HiDumper命令行工具分析应用内存情况,内存持续增长不收敛,压测长时间或者是内存增长超过阈值认为是内存泄漏或者是内存存在超基线问题。存在内存增长的情况下,可以通过DevEco Profiler查找导致内存增长的位置进行分析。

或者清除ohpm和编译缓存,下载ohpm包并重新编译,操作如下:

a. 先点击菜单Build->Clean Project,在控制台执行ohpm clean。 b. 然后点击菜单File->Invalidate Caches…,弹窗选项全选执行并重启。 c. 再在控制台执行ohpm install。 d. 最后点击菜单Build->Rebuild Project即可。

如果还是不能解决您的问题,麻烦您提供下如下信息吧:

1、复现代码(如最小复现demo);

2、版本信息(如:开发工具、手机系统版本信息);

3、麻烦您提供下完整的日志信息吧。

更多关于HarmonyOS鸿蒙Next中es2abc编译问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


已解决,是电脑装的加密软件导致的编译文件被加密

cke_1039.png

之后重新安装Deveco,还是同样的错误

我以前安装过Deveco,应该是4.X的版本,最近升级到6.0.2的版本,新建的一个项目,直接新 create project,Empty Ability,直接编译不过,查的资料也是内存不存,没弄清楚是哪的内存的不存,电脑的?

版本: DevEco Studio 6.0.2 Release

Build Version: 6.0.2.640, built on January 19, 2026

Runtime version: 21.0.8+1-b1038.71 amd64 (JCEF 122.1.9)

VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

Toolkit: sun.awt.windows.WToolkit

Windows 10.0

GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation

Memory: 4096M

Cores: 8

Registry: idea.plugins.compatible.build=IC-243.24978.46

sdk: HarmonyOS 6.0.2 Release SDK, inclusion of OpenHarmony SDK Ohos_sdk_public 6.0.2.130 (API Version 22 Release) as is.

设备:Matepad 11.5S灵动版-HarmonyOS:5.0.1,API:5.0.5(17)

错误信息:

“D:\Developer_HUAWEI\DevEco Studio\tools\node\node.exe” “D:\Developer_HUAWEI\DevEco Studio\tools\hvigor\bin\hvigorw.js” --mode module -p module=entry@default -p product=default -p requiredDeviceType=tablet assembleHap --analyze=normal --parallel --incremental --daemon

hvigor hvigor client: Starting hvigor daemon. hvigor Hvigor Daemon started in 1.09 s hvigor Finished :entry:default@PreBuild… after 157 ms hvigor Finished :entry:default@CreateModuleInfo… after 2 ms hvigor Finished :entry:default@GenerateMetadata… after 5 ms hvigor Finished :entry:default@ConfigureCmake… after 1 ms hvigor Finished :entry:default@MergeProfile… after 6 ms hvigor Finished :entry:default@CreateBuildProfile… after 4 ms hvigor Finished :entry:default@PreCheckSyscap… after 1 ms hvigor Finished :entry:default@GeneratePkgContextInfo… after 10 ms hvigor Finished :entry:default@ProcessIntegratedHsp… after 1 ms hvigor Finished :entry:default@BuildNativeWithCmake… after 1 ms hvigor Finished :entry:default@MakePackInfo… after 7 ms hvigor Finished :entry:default@SyscapTransform… after 3 ms hvigor Finished :entry:default@ProcessProfile… after 1 s 387 ms hvigor Finished :entry:default@ProcessRouterMap… after 5 ms hvigor Finished :entry:default@ProcessShareConfig… after 3 ms hvigor Finished :entry:default@ProcessStartupConfig… after 3 ms hvigor Finished :entry:default@BuildNativeWithNinja… after 2 ms hvigor Finished :entry:default@ProcessResource… after 5 ms hvigor Finished :entry:default@GenerateLoaderJson… after 12 ms hvigor Finished :entry:default@ProcessLibs… after 8 ms hvigor Finished :entry:default@CompileResource… after 2 s 562 ms hvigor Finished :entry:default@DoNativeStrip… after 4 ms hvigor Finished :entry:default@BuildJS… after 4 ms hvigor Finished :entry:default@CacheNativeLibs… after 8 ms hvigor ERROR: Failed :entry:default@CompileArkTS… hvigor ERROR: 10311009 ArkTS: ERROR Error Message: Failed to execute es2abc.

  • Try the following:

    Please refer to es2abc’s error codes. 1 ERROR: Error Message: libc++abi: terminating due to uncaught exception of type std::bad_alloc: std::bad_alloc

COMPILE RESULT:FAIL {ERROR:2}

  • Try:

Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. hvigor ERROR: BUILD FAILED in 19 s 335 ms

Process finished with exit code -1

谢谢!

HarmonyOS Next中es2abc是ArkTS到ArkTS Bytecode的编译器,用于将ArkTS源码编译为方舟字节码。编译问题通常涉及语法兼容性、API版本适配或工具链配置。需检查开发环境版本是否匹配,确保ArkTS代码符合当前SDK规范。编译错误信息可在DevEco Studio的Build视图中查看,具体问题需根据报错日志定位。

这个编译错误 std::bad_alloc 通常指向系统内存分配失败,导致 es2abc 编译器进程异常终止。这并非代码语法问题,而是环境或资源问题。

主要原因和直接解决步骤:

  1. 内存不足:这是最常见原因。es2abc 在编译转换ArkTS代码时可能需要较大内存。

    • 立即操作:关闭不必要的应用程序,特别是其他占用大量内存的IDE(如另一个DevEco Studio实例、WebStorm、Android Studio等)、浏览器标签页、虚拟机或模拟器。
    • 检查:通过系统任务管理器确认可用物理内存(RAM)是否充足(建议空闲内存大于4GB)。如果内存本身较小,考虑增加物理内存或创建更大的虚拟内存/交换空间。
  2. 项目路径问题:项目所在目录路径过长或包含中文字符、特殊字符(空格、括号等)可能引发意外问题。

    • 操作:将项目移动到更短、全英文的路径下,例如 D:\HarmonyOSProjects\MyApp,然后重新打开并编译。
  3. DevEco Studio或SDK环境问题

    • 操作:尝试执行 File > Invalidate Caches and Restart...,选择清除所有缓存并重启IDE。
    • 操作:检查SDK配置。在 File > Settings > HarmonyOS SDK 中,确认使用的SDK版本(API 22 Release)路径正确且完整。可以尝试重新下载或切换一个其他版本的SDK进行测试。
  4. hvigor构建缓存问题

    • 操作:在项目根目录下执行清理命令(在终端中运行):
      ./gradlew clean
      
      或者手动删除项目根目录下的 buildoh_modules.hvigor 等缓存文件夹,然后重新同步项目(Sync Now)并编译。

完成上述任一操作后,请重启DevEco Studio并重新尝试编译。多数情况下,释放内存或清理缓存可以解决此问题。

回到顶部