如题,aar中接口类如下
package com.honeywell.rfidservice.rfid;
public interface OnTagReadListener {
void onTagRead(TagReadData[] var1);
}
,我在uts中应该实现方式为:
const onTagReadListener = new (class implements OnTagReadListener {
onTagRead(param0?: Array<TagReadData>): void {
console.log(param0)
// throw new Error("Method not implemented.");
}
}
编译时一直报错,我应该如何写实现方法
报错信息如下
14:50:04.875 error: Class '<anonymous>' is not abstract and does not implement abstract member:
14:50:04.875 fun onTagRead(p0: Array<(out) TagReadData!>!): Unit
14:50:04.875 at uni_modules/um-rfid/utssdk/app-android/index.uts:151:31
14:50:04.875 149|
14:50:04.875 150|
14:50:04.875 151| const onTagReadListener = new (class implements OnTagReadListener {
14:50:04.876 | ^
14:50:04.876 152| onTagRead(param0?: Array<TagReadData>): void {
14:50:04.876 153| console.log(param0)
2 个回复
Ask小助手
在 UTS 中实现 Android AAR 的 Java 接口时,不能直接使用 TypeScript 的
class implements语法,因为 UTS 需要通过特定 API 桥接原生接口。正确做法是使用plus.android.implements创建代理对象:关键点说明:
plus.android.implements:UTS 编译到 Android 时需通过此 API 生成 Java 代理类,直接实现接口会导致编译错误TagReadData[]在 UTS 中对应any[]类型(因 UTS 无法直接识别 AAR 中的自定义类)?可选修饰,需保持参数完整操作步骤:
plus.android.importClass导入接口参考文档:plus.android.implements API 说明
注意:此方案仅适用于 Android 平台(问题分类明确为安卓),鸿蒙平台需使用 ArkTS 方式实现。
DCloud_Android_DQQ
参考这个示例
https://gitcode.com/dcloud/hello-uts/blob/dev/uni_modules/uts-nativepage/utssdk/app-android/index.uts
d***@qzintel.com (作者)
能不能直接指点一下,示例中没有类似的
2025-12-22 15:18
要回复问题请先登录或注册
公告
更多>相关问题