无效参数:“DateTime”的实例

Invalid argument: Instance of 'DateTime'

提问人:bellotas 提问时间:6/29/2023 更新时间:6/29/2023 访问量:334

问:

我正在开发一个 Flutter 插件,我想从我的文件 Native Android 中传递一个参数。dartDateTime

实现很简单:

飞镖

  Future<bool?> getDate(DateTime localTime) async {
      return         _dateChannel.invokeMethod<bool>('my_method_channel',
          {'localTime': localTime});
  }

爪哇岛

if (methodCall.method.equals("my_method_channel")) {
            Date localTime = methodCall.argument("localTime");

            System.out.println(
                    "TEST |  Estimated localTime | " + localTime);

            result.success(true);
}

但是我收到以下错误

[错误:flutter/runtime/dart_vm_initializer.cc(41)]未处理的异常: 无效参数: “DateTime” 的实例

请注意,这是我实现的简化。我知道我可以得到原生,但这不是我想要的。localTIme

解释当前情况以及如何解决。

Android Flutter 日期时间

评论


答:

3赞 Healingwave 6/29/2023 #1

平台通道不支持数据类型 Date/Datetime。您应该将参数作为 String 类型传递,然后在 Java 代码中解析它。

https://docs.flutter.dev/platform-integration/platform-channels?tab=type-mappings-java-tab#codec

评论

1赞 Richard Heap 6/29/2023
或者自纪元以来将其转换为 millis。
1赞 bellotas 6/30/2023
事实上。''' _dateChannel.invokeMethod<bool>('my_method_channel', {'localTime': localTime.millisecondsSinceEpoch); ''' 解决了问题