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

Flutter运行或执行flutter pub get时出现原生资产相关错误求解决

Flutter pub get执行失败的错误分析与解决办法

错误信息

Macmohan-MacBook-Air facilify % flutter pub get 
Building flutter tool...
Resolving dependencies... (6.7s)
Downloading packages... 
Got dependencies.
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:48:10: Error: Type 'DryRunResult' not found.
  Future<DryRunResult> dryRun({
         ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:127:10: Error: Type 'DryRunResult' not found.
  Future<DryRunResult> dryRun({
         ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:754:37: Error: Type 'DryRunResult' not found.
void ensureNativeAssetsBuildSucceed(DryRunResult result) {
                                    ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:123:26: Error: The getter 'packagesWithNativeAssets' isn't defined for the class 'PackageLayout'.
 - 'PackageLayout' is from 'package:native_assets_builder/src/package_layout/package_layout.dart' ('../../../../.pub-cache/hosted/pub.dev/native_assets_builder-0.7.0/lib/src/package_layout/package_layout.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'packagesWithNativeAssets'.
    return packageLayout.packagesWithNativeAssets;
                         ^^^^^^^^^^^^^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:137:25: Error: The method 'dryRun' isn't defined for the class 'NativeAssetsBuildRunner'.
 - 'NativeAssetsBuildRunner' is from 'package:native_assets_builder/src/build_runner/build_runner.dart' ('../../../../.pub-cache/hosted/pub.dev/native_assets_builder-0.7.0/lib/src/build_runner/build_runner.dart').
Try correcting the name to the name of an existing method, or defining a method named 'dryRun'.
    return _buildRunner.dryRun(
                        ^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:563:9: Error: 'DryRunResult' isn't a type.
  final DryRunResult dryRunResult = await buildRunner.dryRun(
        ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/native_assets.dart:754:37: Error: 'DryRunResult' isn't a type.
void ensureNativeAssetsBuildSucceed(DryRunResult result) {
                                    ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/android/native_assets.dart:53:9: Error: 'DryRunResult' isn't a type.
  final DryRunResult dryRunResult = await buildRunner.dryRun(
        ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/ios/native_assets.dart:51:9: Error: 'DryRunResult' isn't a type.
  final DryRunResult dryRunResult = await buildRunner.dryRun(
        ^^^^^^^^^^^^
../../packages/flutter_tools/lib/src/isolated/native_assets/macos/native_assets.dart:55:9: Error: 'DryRunResult' isn't a type.
  final DryRunResult dryRunResult = await buildRunner.dryRun(\

当前设置

SDK设置
设置

问题原因

核心原因是Flutter SDK版本与依赖的native_assets_builder包(版本0.7.0)不兼容:

  • Flutter工具链代码中引用的DryRunResult类型、packagesWithNativeAssets属性、dryRun方法,在native_assets_builder:0.7.0中已被移除或重命名;
  • 这种版本不匹配通常是pub缓存中残留了不兼容的依赖版本,或是使用的Flutter SDK版本与该依赖包的预期支持版本不一致导致的。

解决办法

1. 清理pub缓存并重新获取依赖

flutter pub cache clean
flutter pub get

2. 同步Flutter SDK到兼容版本

  • 若使用稳定版SDK,切换到稳定通道并更新:
flutter channel stable
flutter upgrade
  • 若项目依赖特定版本的Flutter,需确认该版本与native_assets_builder的兼容性,可查看Flutter官方发布日志或包的官方文档。

3. 重建Flutter工具链

手动清理Flutter缓存后重建工具:

  • 删除Flutter SDK目录下的bin/cache文件夹;
  • 运行flutter doctor,工具会自动重建所需组件;
  • 再次执行flutter pub get。

4. 检查项目依赖配置

  • 确认项目pubspec.yaml中没有直接依赖native_assets_builder,若有则删除该依赖(通常它是Flutter工具链的间接依赖,无需手动添加);
  • 若必须手动依赖,指定与当前Flutter SDK兼容的版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:17:16