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(\
当前设置


问题原因
核心原因是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
相关产品推荐
相关产品推荐

