HarmonyOS 鸿蒙Next arkts调用c代码 release打包crash

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next arkts调用c代码 release打包crash

深色代码主题
复制
Reason:ReferenceError Error name:ReferenceError Error message:n284 is not defined

我们的工程arkts调用c代码,debug正常运行,但是release构建则找不到符号vp2px,并且我们也没开启混淆什么的


更多关于HarmonyOS 鸿蒙Next arkts调用c代码 release打包crash的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
构建har时候要增加 -p buildMode=release

更多关于HarmonyOS 鸿蒙Next arkts调用c代码 release打包crash的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next环境中,使用arkts(Ark TypeScript)调用C代码并在release模式下打包出现crash问题,通常可能涉及几个关键方面:ABI(应用程序二进制接口)匹配、内存管理、以及编译选项配置。

  1. ABI匹配:确保arkts生成的代码与C代码使用的ABI完全一致。检查调用约定、数据类型对齐等。

  2. 内存管理:在arkts与C代码交互时,内存管理需特别小心。避免在arkts侧释放C代码分配的内存,或在C侧释放arkts分配的内存。使用统一的内存管理机制或明确的内存传递协议。

  3. 编译选项:检查release模式下的编译选项,确保优化级别、内联函数等设置不会导致代码行为异常。特别注意是否有未定义的行为被优化触发。

  4. 静态与动态链接:如果C代码是动态链接库,确保动态库的符号解析和绑定在release模式下无误。

  5. 调试信息:虽然release模式通常去除调试信息,但可以尝试在打包时保留部分调试信息或使用符号文件,以便crash时能定位到具体代码位置。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部