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

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

export class Test {
  getInstance(){

  }
}

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

报错Test is not initialized

HarmonyOS
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
HarmonyOS XComponent初始化
100浏览 • 1回复 待解决
HarmonyOS泛型的属性如何初始化
481浏览 • 1回复 待解决
HarmonyOS struct初始化方法
70浏览 • 1回复 待解决
HarmonyOS 单例被反复初始化的问题
42浏览 • 1回复 待解决
没法调试“已初始化”分支
269浏览 • 1回复 待解决
HarmonyOS export struct的初始化参数
63浏览 • 1回复 待解决
HarmonyOS 怎么监听Web初始化完成?
53浏览 • 1回复 待解决
HarmonyOS Component初始化问题
487浏览 • 1回复 待解决
HarmonyOS 如何进行全局初始化操作
44浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
444浏览 • 1回复 待解决
class使用闭包方式初始化 默认值丢失
1954浏览 • 1回复 待解决
初始化安全相机的方法
429浏览 • 1回复 待解决