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

未添加相关依赖,Flutter发布版为何出现Analytics日志?

问题描述

在未直接添加任何分析(Analytics)相关依赖的情况下,我的Flutter发布版应用中出现了Analytics相关的报错日志,请问这是传递依赖导致的吗?还是确实存在Analytics相关的功能在运行?

Release模式下的报错日志:

E/flutter (22994): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SocketException: Failed host lookup: 'api.tatadigital.com' (OS Error: No address associated with hostname, errno = 7)
E/flutter (22994): #0      _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:682)
E/flutter (22994): #1      _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1827)
E/flutter (22994): #2      RawSocket.startConnect (dart:io-patch/socket_patch.dart:27)
E/flutter (22994): #3      RawSecureSocket.startConnect (dart:io/secure_socket.dart:299)
E/flutter (22994): #4      SecureSocket.startConnect (dart:io/secure_socket.dart:77)
E/flutter (22994): #5      _ConnectionTarget.connect (dart:_http/http_impl.dart:2449)
E/flutter (22994): #6      _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2867)
E/flutter (22994): #7      _HttpClient._getConnection (dart:_http/http_impl.dart:2872)
E/flutter (22994): #8      _HttpClient._openUrl (dart:_http/http_impl.dart:2727)
E/flutter (22994): #9      _HttpClient.openUrl (dart:_http/http_impl.dart:2591)
E/flutter (22994): #10     IOClient.send (package:http/src/io_client.dart:35)
E/flutter (22994): #11     BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
E/flutter (22994): #12     BaseClient.post (package:http/src/base_client.dart:32)
E/flutter (22994): #13     post.<anonymous closure> (package:http/http.dart:69)
E/flutter (22994): #14     _withClient (package:http/http.dart:164)
E/flutter (22994): #15     post (package:http/http.dart:68)
E/flutter (22994): #16     AnalyticsApi._fireAnalyticsApi (package:api_core/api/analytics_api.dart:109)
E/flutter (22994): #17     AnalyticsApi._fireEvents.<anonymous closure> (package:api_core/api/analytics_api.dart:68)
E/flutter (22994): #18     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:617)
E/flutter (22994): #19     AnalyticsApi._fireEvents (package:api_core/api/analytics_api.dart:65)
E/flutter (22994): #20     AnalyticsApi.report (package:api_core/api/analytics_api.dart:47)
E/flutter (22994): #21     SharedContext.reportSessionStart (package:native_bridge/channel_handlers/shared_context.dart:67)
E/flutter (22994): <asynchronous suspension>

当前使用的依赖列表:

dependencies:
  flutter:
    sdk: flutter

  http: ^0.13.3
  provider: ^6.0.2
  shared_preferences: ^2.0.5
  google_fonts: ^2.0.0
  cached_network_image: ^3.2.0
  flutter_secure_storage: ^5.0.2
  url_launcher: ^6.0.3
  uni_links: ^0.5.1
  shimmer: ^2.0.0
  intl: ^0.17.0
  fluttertoast: ^8.0.9
  connectivity: ^3.0.3
  carousel_slider: ^4.0.0-nullsafety.0
  html: ^0.15.0
  html_unescape: ^2.0.0
  scrollable_positioned_list: ^0.2.0-nullsafety.0
  fl_chart: ^0.45.0
  flutter_html: ^2.2.1
  scroll_to_index: ^2.0.0
  share: ^2.0.1
  built_collection: ^5.1.0
  flutter_local_notifications: ^9.3.2
  timezone: ^0.8.0
  flutter_web_browser: ^0.17.0
  flex_color_picker: ^2.3.0
  translator: ^0.1.6
  image_picker: ^0.8.4+1
  uuid: ^3.0.5
  dotted_border: ^2.0.0
  retry: ^3.1.0
  auto_size_text: ^3.0.0
  visibility_detector: ^0.3.3
  easy_image_viewer: ^1.1.0

注意:Debug模式下未发现此类日志。


解答

结论:这是传递依赖引入的Analytics功能

从报错栈可以明确看到,AnalyticsApi来自api_core包,触发逻辑来自native_bridge包——这两个包都没有出现在你直接声明的依赖列表里,说明是某个直接依赖的传递依赖引入的。

为什么Debug模式没有报错?

大概率是这个Analytics组件在Debug模式下默认禁用了上报逻辑,或者做了条件判断(比如只在Release模式下发起网络请求),所以Debug时不会触发这个域名解析请求,自然没有报错。

解决步骤

  1. 定位传递依赖来源
    运行命令:

    flutter pub deps
    

    在输出结果中搜索api_core或native_bridge,就能找到是哪个直接依赖引入了它们。

  2. 处理Analytics功能

    • 如果不需要这个分析功能:可以尝试通过pubspec.yaml的依赖配置排除传递依赖,或者查看对应依赖的文档,找到关闭Analytics上报的开关。
    • 如果需要保留:检查api.tatadigital.com域名是否正确,确保网络环境能正常解析该域名,同时建议给这个网络请求添加异常捕获,避免未处理异常导致应用崩溃。
  3. 临时规避报错
    若暂时无法排查依赖来源,可先在代码中全局捕获未处理异常,避免影响应用稳定性:

    void main() {
      FlutterError.onError = (details) {
        FlutterError.presentError(details);
      };
      runZonedGuarded(() {
        runApp(MyApp());
      }, (error, stackTrace) {
        // 在这里处理未捕获的异常,比如只记录日志不崩溃
      });
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:25:37