HarmonyOS 鸿蒙Next突然无法使用,服了服了

HarmonyOS 鸿蒙Next突然无法使用,服了服了

log,之前都用的好好的,今天突然就高数我没得put?????我无语。。。。

上个帖子内,有朋友给我了他能用的代码,然后我进行了修改,可以用了,用到现在不能用了????啥东西,这个存储真滴烂透了啊(#`O′)喂,能不能搞点建设性的东西啊,我之前用uniapp的持久化storage都很简单的,首选项,现在没几个手机是api9所以用不了,换个api8的storage结果老是没得put这种,关键是之前能用有put方法,现在突然没了,代码都没改过(能用我为啥要改)。

Device info:BRQ-AN00

Build info:BRQ-AN00 3.0.0.161(C00E160R7P6)

Module name:com.brejce.myapplication

Version:1.0.0

Pid:19412

Uid:10600

Lifetime: 1.000000s

Js-Engine: ark

page: pages/index.js

Error message: Cannot read property put of undefined

SourceCode:

this.storage.put(key, value).then(() => {

^

Stacktrace:

import hilog from '@ohos.hilog';
import dataStorage from '@ohos.data.storage';
import featureAbility from '@ohos.ability.featureAbility';

export class data_test {
  private storage:dataStorage.Storage
  init(){//获取Storage
    var context = featureAbility.getContext()
    context.getFilesDir().then((filePath) => {
      if (filePath) {
        hilog.info(0x0000, 'dataBase',"put-filePath>>" + filePath);
        dataStorage.getStorage(filePath + '/store').then((s) => {
          this.storage = s
        })
        .catch((err) => {
          hilog.error(0x0000, 'dataBase', "获取 storage 失败:" + err);
        })
      }
    })
  }

  putData(key: string, value: string) {//设置数据
    this.storage.put(key, value).then(() => {
      hilog.info(0x0000, 'dataBase', "保存 " + key + " 成功:" + value);
      this.storage.flushSync()
    }).catch((err) => {
      hilog.error(0x0000, 'dataBase', "保存 " + key + " 失败:" + err);
    })
  }

  getData(key:string){//获取数据
    this.storage.get(key, '').then(value => {
      if (value) {
        hilog.info(0x0000, 'dataBase', "获取 " + key + " 成功:" + value);
      }else{
        hilog.info(0x0000, 'dataBase', "没得数据:" + value);
      }
    }).catch((err) => {
      hilog.error(0x0000, 'dataBase', "获取 " + key + " 失败:" + err);
    })
  }

  hasData(key:string){//查询数据
    this.storage.has(key).then((isExist) => {
      if (isExist) {
        hilog.info(0x0000, 'dataBase', "查询:" + key + " -存在:",isExist);
      }else{
        hilog.info(0x0000, 'dataBase', "查询:" + key + " -不存在:",isExist);
      }
    }).catch((err) => {
      hilog.error(0x0000, 'dataBase', "查询:" + key + " -错误:"+err);//无论数据存在与否都会运行这一条
    })
  }

  deleteData(key:string){//删除数据
    this.storage.delete(key).then(()=>{
      hilog.info(0x0000, 'dataBase', "删除:" + key + " 成功");
    }).catch((err) => {
      hilog.error(0x0000, 'dataBase', "删除:" + key + " 问题:"+err);
    })
  }
}

export default new data_test();

更多关于HarmonyOS 鸿蒙Next突然无法使用,服了服了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

上次就说了赋值问题,使用要在赋值后,你这个顺序是不确定的,storage在赋值前使用肯定报错啊,要判断一下storage是不是空,或者改成同步的代码,

更多关于HarmonyOS 鸿蒙Next突然无法使用,服了服了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


难受,几天没看,今天又不能用了🤣

楼主你好,可能是由于this.storage为空,导致应用闪退。检查下接口init()调用代码,要保证获取到了storage,然后在调用put()接口。

针对“HarmonyOS 鸿蒙Next突然无法使用”的问题,可能的原因及初步排查方法如下:

  1. 系统更新问题:检查是否有未完成的系统更新。鸿蒙系统有时会推送更新,若更新过程中断可能导致系统异常。尝试重启设备,看是否能自动继续更新或恢复正常。

  2. 软件冲突:近期是否安装了新应用或更新了关键软件?某些应用可能与鸿蒙系统不兼容,导致系统异常。尝试进入安全模式,卸载最近安装的应用,看问题是否解决。

  3. 硬件故障:排除软件问题后,考虑硬件故障的可能性,如存储芯片损坏、电源管理问题等。这类问题通常需要专业维修。

  4. 系统恢复:若上述方法均无效,可考虑使用鸿蒙系统自带的恢复功能,如恢复出厂设置。注意,此操作会清除所有数据,请提前备份。

  5. 官方支持:若以上步骤均未能解决问题,可能是系统深层次的bug或特定设备的问题。此时,建议直接联系华为官方客服,获取更专业的技术支持。

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

回到顶部