Flutter桌面Widget编译报错:整数字面量不符合Float类型预期
问题解决:Kotlin获取Flutter Widget数据时编译错误
错误原因
你在Kotlin代码里调用widgetData.getFloat("yearsLeft", 0)时,第二个参数传的0是Int类型字面量,但getFloat方法要求第二个参数必须是Float类型,Kotlin不允许隐式将Int转换为Float,所以触发编译错误。
另外补充:Flutter端你存储的是double类型数值,Kotlin里Double和Flutter的double是对应匹配的类型,用getDouble会更贴合原数据类型。
修复方案
方案1:修正默认值为Float类型
把默认值从0改成0.0f(Float类型的字面量):
val yearsLeft = widgetData.getFloat("yearsLeft", 0.0f)
方案2:改用getDouble方法(更推荐)
因为Flutter端存储的是double类型,直接用getDouble获取,默认值也用Double类型的0.0:
val yearsLeft = widgetData.getDouble("yearsLeft", 0.0)
验证说明
修改后重新编译Kotlin代码,app:compileDebugKotlin任务就能正常执行,同时能正确获取Flutter端传递的yearsLeft数值。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

