首次运行Xamarin Android项目成功,二次部署遇ADB1000错误
解决Xamarin Android项目二次部署ADB1000只读文件系统错误
场景:首次运行基于Xamarin的Android项目成功,但第二次运行时遇到如下错误:
严重性 代码 描述 项目 文件 行 禁止显示状态 错误 ADB1000: Deployment failed Xamarin.AndroidTools.AndroidDeploymentException: FailedToSynchronizeFastDevAssemblies ---> Mono.AndroidTools.AdbException: Read-only file system 在 Mono.AndroidTools.Util.AggregateAsyncResult.CheckError(CancellationToken token) 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Mono.AndroidTools\Util\AggregateAsyncResult.cs:行 72 在 Mono.AndroidTools.Adb.AdbSyncClient.EndPushSyncItems(IAsyncResult result) 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Mono.AndroidTools\Adb\AdbSyncClient.cs:行 1071 在 Mono.AndroidTools.Internal.AdbClientTaskExtensions.InnerInvoke(TaskCompletionSource`1 tcs, Func`2 endMethod, IAsyncResult l) 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Mono.AndroidTools\Internal\AdbClientTaskExtensions.cs:行 255 --- 引发异常的上一位置中堆栈跟踪的结尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 在 Xamarin.AndroidTools.AndroidDeploySession.<InstallAssemblies>d__117.MoveNext() 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 578 --- 内部异常堆栈跟踪的结尾 --- 在 Xamarin.AndroidTools.AndroidDeploySession.<InstallAssemblies>d__117.MoveNext() 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 586 --- 引发异常的上一位置中堆栈跟踪的结尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Xamarin.AndroidTools.AndroidDeploySession.<FastDevAsync>d__114.MoveNext() 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 478 --- 引发异常的上一位置中堆栈跟踪的结尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 在 Xamarin.AndroidTools.AndroidDeploySession.<RunAsync>d__106.MoveNext() 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 225 --- 引发异常的上一位置中堆栈跟踪的结尾 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Xamarin.AndroidTools.AndroidDeploySession.<RunLoggedAsync>d__104.MoveNext() 位置 C:\A\vs2019mb-000030-1\_work\21\s\External\androidtools\Xamarin.AndroidTools\Sessions\AndroidDeploySession.cs:行 119 0
我之前踩过一模一样的坑,这问题核心是Xamarin的快速部署(Fast Deployment)在同步程序集时,遇到了设备/模拟器存储只读的权限问题。给你几个亲测有效的解决步骤,按顺序试大概率能搞定:
关闭快速部署
报错里明确提到了FailedToSynchronizeFastDevAssemblies,直接关掉这个功能就能绕开问题。操作:右键你的Xamarin Android项目 → 选择属性 → 切换到Android选项 → 取消勾选“启用快速部署(适用于调试)”。之后先执行Build → Clean Solution清理项目,再重新部署。重置ADB连接
有时候ADB和设备的连接状态异常会导致存储权限错乱。打开命令提示符,依次运行:adb kill-server adb start-server运行完重启你的模拟器或物理设备,再试部署。
修复设备/模拟器存储状态
- 物理设备:检查USB连接模式,别用“仅充电”,改成“文件传输”模式,确保设备存储能正常读写。
- 模拟器:打开模拟器设置,找到恢复出厂设置(或Wipe Data)选项,重置存储状态后再部署。
清理编译缓存
手动删掉项目目录下的obj和bin文件夹,然后在Visual Studio里选Build → Rebuild Solution重新生成,避免旧缓存文件引发冲突。
内容的提问来源于stack exchange,提问作者david allson
相关产品推荐
相关产品推荐

