在uts插件中,处理【回调函数已释放,不能再次执行】问题,增加@UTSJS.keepAlive修饰后,提示不能有override,但是当前的class是 implements InitListener的,onState方法需要override;不理会这个提示执行没有问题,也没报错;这是什么问题呢?怎么解决?
在uts插件中,处理【回调函数已释放,不能再次执行】问题,增加@UTSJS.keepAlive修饰后,提示不能有override,但是当前的class是 implements InitListener的,onState方法需要override;不理会这个提示执行没有问题,也没报错;这是什么问题呢?怎么解决?
该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
这是 HBuilderX 4.25-4.26 之间版本的一个 静态检查误报。
在 Android 平台,当 @UTSJS.keepAlive 与 override 同时出现在一个方法上时,IDE 会提示“不能有 override”,但 实际编译、运行都不会报错,也不会影响功能。
@UTSJS.keepAlive 装饰器来显式保留回调,但早期版本的 lint 规则 把“override 方法”误判为“不能加 keep-alive”,于是出现误报。 | 场景 | 操作 |
|---|---|
| 能升级 HBuilderX | 直接升级到 4.27 及以上(推荐最新正式版 4.87),误报会自动消失。 |
| 暂时不能升级 | 在方法上方加一行<br>// @ts-ignore 或 // eslint-disable-next-line<br>即可让 IDE 跳过检查,产物不受影响。 |
无需改动业务代码,保留 implements InitListener 与 @Override onState(...) 即可;升级 IDE 后提示自然消失。