HarmonyOS 使用Preferences时报错崩溃 Error code 15500000

使用Preferences时报错崩溃,如截图所示

HarmonyOS  使用Preferences时报错崩溃 Error code 15500000 -鸿蒙开发者社区

HarmonyOS
2024-08-02 17:50:13
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
xcbaby

看报错,应该是this.context的问题,写了一个PreferenceUtil,可以参考一下

import preferences from '@ohos.data.preferences'; 
 
class PreferenceUtil{ 
  pref: preferences.Preferences | null = null; 
 
  async loadPreference(context:Context){ 
    try { // 加载preferences 
      this.pref = await preferences.getPreferences(context, 'myApppreferencesStor'); 
    } catch (e) { 
    } 
  } 
 
  async putPreferenceValue(key: string, value: preferences.ValueType){ 
    if (!this.pref) { 
      console.debug(`Preferences尚未初始化!`) 
      return 
    } 
    try { 
      // 写入数据 
      this.pref.putSync(key, value) 
      // 刷盘 
      await this.pref.flush() 
    } catch (e) { 
   
    } 
  } 
 
  getPreferenceValue(key: string, defaultValue: preferences.ValueType){ 
    if (!this.pref) { 
        return 
    } 
    try { 
      // 读数据 
      let value =  this.pref.getSync(key, defaultValue) 
      console.debug(`读取Preferences[${key} = ${value}]成功`) 
      return value 
    } catch (e) { 
        return 
    } 
  } 
} 
 
const preferenceUtil = new PreferenceUtil() 
export default preferenceUtil as PreferenceUtil

在onWindowStageCreate里面加载

onWindowStageCreate(windowStage: window.WindowStage): void { 
  // Main window is created, set main page for this ability 
   // 加载用户首选项 
  PreferenceUtil.loadPreference(this.context) 
 
  windowStage.loadContent('pages/Index', (err, data) => { 
  if (err.code) { 
  hi  return; 
} 
}); 
}
分享
微博
QQ
微信
回复
2024-08-02 21:59:24
相关问题
HarmonyOS preferences.putSync 存储报错
77浏览 • 1回复 待解决
使用ohpm发布tgz文件时报错
447浏览 • 1回复 待解决
使用featureAbility.getContext()时报错如下
213浏览 • 1回复 待解决
HarmonyOS 使用preferences存储的限制
112浏览 • 1回复 待解决
HarmonyOS使用HashMap崩溃
90浏览 • 1回复 待解决
HarmonyOS 安装APP报错code:9568289
449浏览 • 1回复 待解决
HarmonyOS线程池使用崩溃
125浏览 • 1回复 待解决
拉起UIAbility时报错16000050
1869浏览 • 1回复 待解决
hmscore接入安装HarmonyOS的npm包时报错
485浏览 • 1回复 待解决