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

Flutter 3.10.2执行flutter pub get/dart run时遇RangeError问题求助

问题排查:Flutter 3.10.2执行flutter pub get出现RangeError

问题详情

在Flutter 3.10.2版本中,执行flutter pub get或dart run时触发以下错误,其他项目无此问题:

flutter pub get 
Resolving dependencies... (2.6s)
RangeError (index): Invalid value: Only valid value is 0: 1
dart:core                                           List.[]
package:pub/src/solver/package_lister.dart 334:47   PackageLister._checkSdkConstraint
===== asynchronous gap ===========================
package:pub/src/solver/package_lister.dart 277:32   PackageLister.incompatibilitiesFor
===== asynchronous gap ===========================
package:pub/src/solver/version_solver.dart 399:12   VersionSolver._choosePackageVersion
===== asynchronous gap ===========================
package:pub/src/solver/version_solver.dart 105:18   VersionSolver.solve.<fn>
===== asynchronous gap ===========================
package:pub/src/source/hosted.dart 1374:14          HostedSource.withPrefetching.<fn>
===== asynchronous gap ===========================
package:pub/src/rate_limited_scheduler.dart 111:14  RateLimitedScheduler.withPrescheduling
===== asynchronous gap ===========================
package:pub/src/source/hosted.dart 1373:12          HostedSource.withPrefetching
===== asynchronous gap ===========================
package:pub/src/solver/version_solver.dart 101:14   VersionSolver.solve
===== asynchronous gap ===========================
package:pub/src/entrypoint.dart 358:14              Entrypoint.acquireDependencies
===== asynchronous gap ===========================
package:pub/src/command/get.dart 76:5               GetCommand.runProtected

项目pubspec.yaml配置:

environment:
  sdk: '>=3.0.1 <4.0.0'

dependencies:
  auto_size_text: ^3.0.0-nullsafety.0
  drop_shadow: ^0.1.0
  firebase_core: ^2.13.0
  firebase_crashlytics: ^3.3.1
  firebase_storage: ^11.2.1
  flutter:
    sdk: flutter
  flutter_countdown_timer: ^4.1.0
  flutter_hms_gms_availability: ^3.7.0
  flutter_localizations:
    sdk: flutter
  flutter_svg: ^2.0.6
  flutter_webrtc: ^0.9.31
  google_maps_flutter: ^2.2.8
  html: ^0.15.3
  http: ^0.13.6
  huawei_map: ^6.5.0+301
  i18n_extension: ^9.0.0
  lottie: ^2.3.2
  moor: ^4.6.0
  otp_autofill: ^2.1.0
  package_info: ^2.0.2
  path_provider: ^2.0.15
  provider: ^6.0.5
  shared_preferences: ^2.1.1
  sqlite3_flutter_libs: ^0.5.15
  t4b_platform_auth:
    git:
      url: xxxxxxxx
  web_socket_channel: ^2.4.0

dev_dependencies:
  build_runner: ^2.4.4
  cached_network_image: ^3.2.3
  device_info_plus: ^9.0.1
  flutter_test:
    sdk: flutter
  internet_connection_checker: ^1.0.0+1
  moor_generator: ^4.6.0

原因分析

错误发生在pub的依赖解析器处理SDK约束时,访问列表索引越界,说明某个依赖的SDK约束格式不合法,或与当前Dart 3.0.x版本存在解析冲突。重点怀疑对象:

  • 私有git依赖t4b_platform_auth:该包的pubspec.yaml可能存在SDK约束写法错误,或未适配Dart 3.0;
  • 旧版预览依赖auto_size_text: ^3.0.0-nullsafety.0:这是nullsafety的预览版本,约束格式可能不符合pub对Dart 3.0的解析规则;
  • 长期未维护的drop_shadow: ^0.1.0:该包最后更新于2020年,SDK约束可能仅支持旧版Dart,导致解析时出错。

解决方法

1. 排查并修复私有git依赖

  • 克隆t4b_platform_auth仓库,检查其pubspec.yaml的environment.sdk字段,确保格式符合规范(例如sdk: '>=3.0.0 <4.0.0'),且版本范围覆盖当前Dart 3.0.1;
  • 若该包未适配Dart 3.0,需更新其SDK约束,或切换到支持Dart 3.0的分支/版本。

2. 更新或替换问题依赖

  • 替换auto_size_text为稳定版:将依赖改为auto_size_text: ^3.0.0或最新兼容版本,执行flutter pub upgrade auto_size_text;
  • 替换drop_shadow:由于该包长期未维护,可替换为功能类似的活跃包(如drop_shadow_image),或自行fork并更新其SDK约束。

3. 清理缓存重新解析

  • 清理pub缓存:
    flutter pub cache clean
    
  • 删除项目根目录的pubspec.lock文件,再执行:
    flutter pub get
    

4. 逐步排查可疑依赖

  • 临时注释掉t4b_platform_auth和drop_shadow,执行flutter pub get。若命令成功,说明问题出在这两个依赖中,再逐个恢复以定位具体问题包。

内容的提问来源于stack exchange,提问作者Dawid Długosz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 19:29:55