Flutter运行Android项目时:app:mapDebugSourceSetPaths任务执行失败
解决Flutter Android项目中
:app:mapDebugSourceSetPaths任务失败问题 核心问题
Gradle无法快照launch_background.xml文件,提示它不是常规文件——根源是文件存在于OneDrive路径下,被同步机制标记为在线文件而非本地实体文件。
解决方案
1. 修复文件本地状态
- 打开路径
C:\Users\xabla\OneDrive\Ambiente de Trabalho\projecs\messages\android\app\src\main\res\drawable,找到launch_background.xml - 要是文件显示灰色(OneDrive在线仅存状态),右键选「始终在此设备上保留」,等文件同步成本地常规文件
- 若文件损坏或同步失败,直接替换成Flutter默认启动页背景文件内容:
<?xml version="1.0" encoding="utf-8"?> <!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/white" /> <!-- You can insert your own image assets here --> <!-- <item> <bitmap android:gravity="center" android:src="@mipmap/launch_image" /> </item> --> </layer-list>
2. 彻底清理项目构建缓存
- 执行Flutter清理命令:
flutter clean - 进入Android目录清理Gradle缓存:
cd android gradlew clean # Windows系统 # ./gradlew clean # Mac/Linux系统 - 删除项目根目录的
.dart_tool、build文件夹,以及Android目录下的.gradle、build文件夹
3. 临时绕过Gradle状态跟踪(不推荐长期用)
要是上面的方法都没用,可临时让Gradle跳过该任务的状态检查:
打开Android模块的build.gradle文件,在android代码块里加:
tasks.named('mapDebugSourceSetPaths') { doNotTrackState() }
原因分析
OneDrive的自动同步可能在后台把文件标记成「在线仅存」,导致Gradle识别不了它是常规本地文件,快照操作直接失败。昨天还能正常运行,说明文件状态是同步后才发生变化的。
内容的提问来源于stack exchange,提问作者Vinícius Bruno
相关产品推荐
相关产品推荐

