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

Flutter报错:Expected a value of type 'int', but got one of type 'String'

报错原因

  • 核心触发原因:RequestAssist类的getReqeust方法中,判断请求成功的条件写为if (response == 200),这里response是http.Response类型的对象,不能直接和int类型的状态码200做等值判断,类型不匹配直接触发了该报错。
  • 同时存在多个隐藏问题会导致功能无法正常运行:
    1. Google Geocode API的请求URL拼接不符合官方规则,正确的参数格式应为?latlng=纬度,经度&key=密钥,当前参数拼接错误会导致请求直接返回失败
    2. 错误取用了position.altitude(海拔值),地址解析需要的是position.longitude(经度值)
    3. 请求失败的返回值拼写和外层判断的字符串拼写不一致,就算请求成功也无法进入取值分支
    4. 未对返回的JSON结构做判空处理,直接嵌套取值容易触发空安全异常

修复方案

按照下方代码修正逻辑即可:

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:geolocator/geolocator.dart';

// 替换为你自己的Google地图服务密钥
const String mapKey = "你的谷歌地图密钥";

class AssiMethod {
  static Future<String> searchCooredinationAdress(Position position) async {
    String addressPlace = "";
    // 修正URL参数拼接规则,替换altitude为longitude
    String url =
        "https://maps.googleapis.com/maps/api/geocode/json?latlng=${position.latitude},${position.longitude}&key=$mapKey";
    var response = await RequestAssist.getRequest(url);
    // 先判断返回值类型,再校验接口返回状态
    if (response is Map && response["status"] == "OK") {
      // 增加数组判空逻辑,避免空异常
      if(response["results"] != null && (response["results"] as List).isNotEmpty) {
        addressPlace = response["results"][0]["formatted_address"] ?? "";
      }
    }
    return addressPlace;
  }
}

class RequestAssist {
  // 修正方法名拼写错误
  static Future<dynamic> getRequest(String url) async {
    try {
      http.Response response = await http.get(Uri.parse(url));
      // 修正:取statusCode属性和状态码200对比
      if (response.statusCode == 200) {
        String jsonData = response.body;
        var decoData = jsonDecode(jsonData);
        return decoData;
      } else {
        return "echec de repense";
      }
    } catch (exp) {
      return "echec";
    }
  }
}

// 调用代码示例
// String adresse = await AssiMethod.searchCooredinationAdress(position);
// print("adresse $adresse");

内容的提问来源于stack exchange,提问作者oussama.alouache

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:27:05