HarmonyOS 鸿蒙Next在AppStorage.setOrCreate('User', user)处出现CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8

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

HarmonyOS 鸿蒙Next在AppStorage.setOrCreate(‘User’, user)处出现CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8 在AppStorage.setOrCreate(‘User’, user);处出现了CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8 请问怎么解决?


更多关于HarmonyOS 鸿蒙Next在AppStorage.setOrCreate('User', user)处出现CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

1、0xffffffff通常是内存溢出或者系统资源不足的标志,尝试优化下该部分代码:

let value: string|undefined= AppStorage.has('CommonApp')?AppStorage.get<string>('CommonApp') :''
if(value!=user){ 
AppStorage.setOrCreate('CommonApp', user) 
}

2、关于app操作持久化存储数据,使用PersistentStorage首选项 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-persiststorage-V5

3、关于首选项demo,可见以下链接: https://gitee.com/harmonyos_samples/preferences

更多关于HarmonyOS 鸿蒙Next在AppStorage.setOrCreate('User', user)处出现CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


有更多的报错日志吗;AppStorage.setOrCreate(‘User’, user)是在什么地方定义的,这块代码也看下

您好,是在登录的时候操作的。这个错误是在做功能测试的时候发现的,就连续的退出,登录,退出登录,不超3次就闪退了。应用测试包还正常,打了realse包,使用梆梆加固之后,就有这个问题了。

2-1. 接口返回成功

if (res.code === 200) {

  let data: string = JSON.stringify(res.data)
  console.log("LockLogin---->resp:" + data)
  try {
    let user: UserInfo = JSON.parse(data);

    // 页面是否置灰
    if (user.isGrey == '1') {
      AppStorage.setOrCreate('grey', 1)
    }
    // 关闭等待层
    this.dialogController?.close()
    // 存储登录信息
    AppStorage.setOrCreate('CommonApp', user);
    router.replaceUrl({ url: 'pages/MainPage' });
  } catch (e) {
    prompt.showToast({ message: '登陆失败!接口数据格式异常', bottom: CommonConstants.TOAST_BOTTOM })
    console.log("LockLogin---->err= " + e)
  }
}

你们当前deveco是什么版本啊,每个模块下的build-profile.json5里有没有配置混淆,将下方的true改为false看下呢

{
  "ruleOptions": {
    "enable": false,
    "files": [
      "./obfuscation-rules.txt"
    ]
  }
}

每个模块下的ruleOptions都是false呢,

图片

针对您提到的HarmonyOS 鸿蒙Next在AppStorage.setOrCreate('User', user)处出现的CppCrash故障,错误代码为Reason:Signal:SIGSEGV(SEGV_MAPERR)@0xffffffffffffffb8的问题,这通常指示着程序尝试访问一个无效的内存地址。

此类错误可能由多种原因引起,包括但不限于:

  • 指针未正确初始化:在尝试使用指针之前,它可能未被赋予有效的内存地址。
  • 内存越界:访问数组或内存块时超出了其分配的范围。
  • 野指针:指针指向了已被释放的内存区域。

在鸿蒙系统中,特别是涉及到C++层面的开发,这种内存访问错误需要开发者仔细检查相关代码,确保所有指针在使用前都已正确初始化,且访问的内存区域是有效且未被释放的。此外,检查AppStorage相关操作的实现,确认是否有潜在的内存管理问题。

由于此类问题通常涉及底层代码和内存管理,解决它可能需要深入分析和调试。如果问题依旧没法解决请联系官网客服,官网地址是:

https://www.itying.com/category-93-b0.html

回到顶部