You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Google ML Kit Smart Reply报错:getText方法未定义

解决Google ML Kit Smart Reply的getText()方法错误

问题原因

你遇到的错误是因为新版本的google_mlkit_smart_reply包中,suggestReplies()返回的response.suggestions直接是字符串列表,而非包含getText()方法的对象,所以调用suggestion.getText()会提示方法不存在。

修复代码

直接修改_generateSmartReplies()方法,去掉getText()调用,直接使用suggestion即可:

void _generateSmartReplies() async {
  final messageText = _messageController.text;
  final timestamp = DateTime.now().millisecondsSinceEpoch;

  // Add message to the conversation context
  _smartReply.addMessageToConversationFromLocalUser(messageText, timestamp);

  // Fetch smart replies based on the updated conversation context
  final response = await _smartReply.suggestReplies();

  setState(() {
    // 直接将suggestions转为字符串列表
    _smartReplies = response.suggestions.toList();
  });
}

额外优化提示

当前代码在_sendMessage()中先清空了_messageController再调用_generateSmartReplies(),会导致messageText为空字符串,影响智能回复的生成准确性。建议调整逻辑,先保存消息内容再清空控制器:

修改_sendMessage()方法

void _sendMessage() async {
  final message = _messageController.text;
  if (message.isNotEmpty) {
    await _chatService.sendMessage(widget.recieverId, message);
    _messageController.clear();
    // 传入保存的消息内容
    _generateSmartReplies(message);
  }
  scrollDown();
}

修改_generateSmartReplies()方法以接收参数

void _generateSmartReplies(String messageText) async {
  final timestamp = DateTime.now().millisecondsSinceEpoch;

  _smartReply.addMessageToConversationFromLocalUser(messageText, timestamp);

  final response = await _smartReply.suggestReplies();

  setState(() {
    _smartReplies = response.suggestions.toList();
  });
}

内容的提问来源于stack exchange,提问作者Learner_01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 06:12:23