HarmonyOS 鸿蒙Next 多HAP开发,为什么跳转另一个HAP再系统键回退后,HAP内router会导致APP崩溃?

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

HarmonyOS 鸿蒙Next 多HAP开发,为什么跳转另一个HAP再系统键回退后,HAP内router会导致APP崩溃? 在学习Harmony开发,API Level 9,用的Local Emulator, 版本3.1.0.306。

创建了一个多HAP的APP,有一个Entry和一个Feature,Entry内的router均能正常跳转。现在在Entry中,点击某个按钮,使用startAbility开启另一个Feature,然后点击系统后退按钮。

APP确实能正常显示成Entry页面内容,但是在这个时候点击页面内其他按钮,触发router跳转,APP会直接崩溃。

从日志看,Entry的router跳转时自动加上了Feature的module name。

日志如下:

Device info:OpenHarmony 3.2
Build info:OpenHarmony 3.2.9.1
Module name:com.example.myapplication
Version:1.0.0
Pid:633
Uid:20040004
Lifetime: 0.000000s
Js-Engine: ark
page: pages/Second.js
Error message: cannot find record ‘com.example.myapplication/app1/ets/pages/Second’, please check the request path.

Stacktrace:

=====================Backtrace========================

1: /system/lib64/libark_jsruntime.so(+2a6ecf)

2: /system/lib64/libark_jsruntime.so(+19d8fd)

3: /system/lib64/libark_jsruntime.so(+410e64)

4: /system/lib64/libark_jsruntime.so(+410a48)

5: /system/lib64/libark_jsruntime.so(+34bce0)

6: /system/lib64/libark_jsruntime.so(+36507f)

7: /system/lib64/libark_jsruntime.so(+3f803d)

8: /system/lib64/libace.z.so(+1b1c20c)

9: /system/lib64/libace.z.so(+1af0a19)

#10: /system/lib64/libace.z.so(+1af0fbc)
#11: /system/lib64/libace.z.so(+bf4c7c)
#12: /system/lib64/libace.z.so(+c152ec)
#13: /system/lib64/libace.z.so(+c166bb)
#14: /system/lib64/libace.z.so(+c168fc)
#15: /system/lib64/libace.z.so(+bfc28f)


更多关于HarmonyOS 鸿蒙Next 多HAP开发,为什么跳转另一个HAP再系统键回退后,HAP内router会导致APP崩溃?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

您好,请问问题解决了吗?

更多关于HarmonyOS 鸿蒙Next 多HAP开发,为什么跳转另一个HAP再系统键回退后,HAP内router会导致APP崩溃?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好,请问问题解决了吗?我也碰到这个问题,不知道为啥会自动加上Feature的module name

怎么解决的?我也碰到了

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

您好楼主:

关于您这个问题有相关的代码吗,还有就是问题的错误码

我也遇到了,能帮忙看下吗?

在HarmonyOS鸿蒙Next的多HAP(HarmonyOS Ability Package)开发环境中,当从一个HAP跳转到另一个HAP并通过系统返回键回退后,若HAP内的router导致APP崩溃,这通常与以下几个方面有关:

  1. 状态管理不一致:跳转前后,源HAP和目标HAP之间的状态管理可能未正确同步或恢复,导致在回退后router尝试访问已释放或不一致的状态资源。

  2. 生命周期处理不当:HAP的Ability生命周期管理可能存在问题,如未正确处理onPause、onResume等状态变化,导致在回退时资源访问冲突或异常。

  3. 内存管理问题:内存泄漏或对象被错误回收可能导致router在回退后访问无效内存,从而引发崩溃。

  4. 路由配置错误:HAP内的路由配置可能存在错误,如目标页面未正确注册或路由路径不匹配,导致在回退后router无法正确解析目标页面。

解决此类问题通常需要检查并修正上述方面的潜在问题。开发者应确保状态同步、正确处理生命周期、优化内存管理,并仔细检查路由配置。

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

回到顶部