HarmonyOS 鸿蒙Next flutter_packages pigeon 方法返回值为double时遇到整数会报错

发布于 1周前 作者 nodeper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next flutter_packages pigeon 方法返回值为double时遇到整数会报错

pigeon:
@HostApi()
abstract class TunerApi {
double getSystemSamprate();
}
ohos:
export class TunerApiImpl extends TunerApi {
getSystemSamprate(): number {
return 44100.0;
}
}
flutter:
Future<double> getSystemSamprate() async {
.....
} else {
return (replyList[0] as double?)!;
}
}


此时最后的replyList[0]收到的为44100,但是44100无法as为double,结果报错了。


更多关于HarmonyOS 鸿蒙Next flutter_packages pigeon 方法返回值为double时遇到整数会报错的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

2 回复

经过确认dart不能自动进行类型转换,需要按照具体的int 、double类型做处理。

更多关于HarmonyOS 鸿蒙Next flutter_packages pigeon 方法返回值为double时遇到整数会报错的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在HarmonyOS鸿蒙Next的flutter_packages中,使用pigeon进行跨语言通信时,若方法返回值为double类型,并在返回整数时遇到报错,这通常是由于数据类型转换或序列化问题引起的。

确保在定义pigeon接口时,返回值的类型严格声明为double。同时,检查返回值的实际生成逻辑,确保在赋值给double类型变量时,无论是整数还是小数,都保持类型一致性。例如,在Dart或JavaScript侧,即使数值为整数,也应显式地作为double处理,如使用double.parse('123')123.0来确保其为double类型。

此外,检查pigeon生成的代码,特别是涉及double值序列化和反序列化的部分,确保没有类型不匹配或数据丢失的情况。如果pigeon框架本身在处理double类型时有bug或限制,这也可能导致问题。

如果问题依旧存在,考虑是否是pigeon框架的已知问题或版本不兼容问题。查看pigeon的官方文档和更新日志,确认是否有相关的修复或说明。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部