HarmonyOS 导出类使用时报未初始化

导出单例类,在使用是报该类未定义

export class Test {
  getInstance(){

  }
}

// 使用时
Test.getInstance().func()

报错Test is not initialized

HarmonyOS
2024-12-25 12:21:07
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

请先使用checkCircularImport排查循环依赖,步骤如下

①新建一个.ts文件,拷贝下方代码

// @ts-ignore
ArkTools.checkCircularImport('bundleName/moduleName/xxx/xxx');
export let ss =100;
console.log("checkCircularImport")

②替换checkCircularImport的入参,首先从报错栈中找到文对应文件,然后在对应编译产物中找到对应的OhmUrl,编译产物路径(如果是hap/feature/hsp就是在本模块下编译产物中查找,如果是har包或者三方包就在加载它的hap/feature/hsp下编译产物中查找):

build/default/cache/default/default@CompileArkTS/esmodule/debug/filesInfo.txt

在该文件中搜索报错文件名,截取截取图中esm的分号前,.ts分号后的部分。开发者可以检查名字是不是bundleName/moduleName/xxx/xxx 的形式。将该路径作为步骤①函数的入参

③将步骤①的ts文件导入到报错文件最上层,例如

import {ss} from ./check
//其他import
console.log('tag',ss)

编译运行,过滤关键字checkCircularImport,复现crash操作 ,即可看到报错循环引用环。

分享
微博
QQ
微信
回复
2024-12-25 13:51:27
相关问题
HarmonyOS泛型的属性如何初始化
705浏览 • 1回复 待解决
HarmonyOS XComponent初始化
425浏览 • 1回复 待解决
HarmonyOS 单例被反复初始化的问题
264浏览 • 1回复 待解决
HarmonyOS struct初始化方法
363浏览 • 1回复 待解决
HarmonyOS 组件初始化参数
114浏览 • 1回复 待解决
HarmonyOS Component初始化问题
758浏览 • 1回复 待解决
HarmonyOS 初始化EGL环境失败
313浏览 • 1回复 待解决
没法调试“已初始化”分支
498浏览 • 1回复 待解决
HarmonyOS 怎么监听Web初始化完成?
388浏览 • 1回复 待解决
HarmonyOS export struct的初始化参数
347浏览 • 1回复 待解决
HarmonyOS 推送服务初始化失败
73浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
695浏览 • 1回复 待解决
HarmonyOS 自定义弹窗初始化问题
141浏览 • 1回复 待解决
HarmonyOS 如何进行全局初始化操作
283浏览 • 1回复 待解决
HarmonyOS 如何动态对Class进行初始化
197浏览 • 1回复 待解决
初始化安全相机的方法
734浏览 • 1回复 待解决