Flutter安卓模拟器运行报错:pub-cache中android目录不存在
问题描述
在M2 Mac Mini上使用Android Studio Hedgehog运行Flutter应用时,Android模拟器报错,但iOS模拟器运行正常。报错信息如下:
Basedir /Users/cohen/.pub-cache/hosted/pub.dev/firebase_analytics_web-0.5.1+9/android does not exist
该问题并非仅出现在firebase_analytics_web,所有依赖都存在此问题。全新Flutter项目可正常构建运行,修改报错项目的Android配置后问题仍未解决。
已尝试的解决方法
- 清除缓存并重启IDE
- 执行
flutter pub cache repair命令 - 重新下载并安装Flutter SDK
- 确保Flutter、Dart为最新稳定版本
- 升级Android Studio至最新版(Hedgehog)
Flutter Doctor检测结果
[✓] Flutter (Channel stable, 3.16.3, on macOS 14.1.2 23B92 darwin-arm64, locale en-US) • Flutter version 3.16.3 on channel stable at /Users/cohen/Documents/sdks/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision b0366e0a3f (3 days ago), 2023-12-05 19:46:39 -0800 • Engine revision 54a7145303 • Dart version 3.2.3 • DevTools version 2.28.4 [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/cohen/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.0.1) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 15A507 • CocoaPods version 1.14.3 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2023.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) [✓] VS Code (version 1.85.0) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension can be installed from: 🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter [✓] Connected device (4 available) • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64 • Android 14 (API 34) (emulator) • iPhone 15 Pro Max (mobile) • CB3879FF-6A71-4A26-A31B-42FE8B1E5921 • ios • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator) • macOS (desktop) • macos • darwin-arm64 • macOS 14.1.2 23B92 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 120.0.6099.71 [✓] Network resources • All expected network resources are available. • No issues found!
可行解决方案
修正pubspec.yaml依赖声明
web专用依赖(如firebase_analytics_web)本身没有Android目录,若误将其放在dependencies下,会被Android构建流程扫描到导致报错。调整方式:dependencies: firebase_analytics: ^x.x.x # 引入多平台核心包 dev_dependencies: firebase_analytics_web: ^x.x.x # web专用依赖移至dev_dependencies或通过条件导入控制依赖加载,确保Android构建时不处理web依赖。
彻底清理缓存并重新获取依赖
执行以下命令删除缓存后重新下载所有依赖:rm -rf ~/.pub-cache/hosted/pub.dev/ flutter clean flutter pub get配置Android构建过滤规则
打开项目android/build.gradle,添加打包过滤规则排除web相关目录:android { packagingOptions { exclude '**/web/**' } }切换Flutter渠道测试
部分稳定版兼容性问题在beta渠道已修复,执行以下命令切换渠道:flutter channel beta flutter upgrade
内容的提问来源于stack exchange,提问作者cohenadair
相关产品推荐
相关产品推荐

