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

如何提升.NET MAUI Android调试构建的加载速度?

.NET 6 Android调试启动卡顿:程序集从__override__加载而非Bundles的解决思路

问题场景

切换.NET 7后回退至.NET 6,Android调试时出现严重启动延迟:VS完成部署操作后,模拟器在启动页卡顿约1分钟,VS状态栏持续显示"XAML Hot Reload initializing...",输出窗口显示大量程序集从bundles加载失败,转而从/data/data/.../.__override__目录加载。此前正常启动仅需5-10秒,恢复GitHub备份、新建.NET 6 MAUI/Android项目均存在相同问题。

输出窗口片段

19:38:43:988    [monodroid-assembly] open_from_bundles: failed to load assembly Xamarin.AndroidX.Loader.dll
19:38:43:988    Loaded assembly: /data/data/com.prometheansoftworks.myapp/files/.__override__/Xamarin.AndroidX.Loader.dll [External]
19:38:44:270    [monodroid-assembly] open_from_bundles: failed to load assembly Microsoft.Maui.Controls.Compatibility.dll
19:38:44:270    [monodroid-assembly] open_from_bundles: failed to load assembly Plugin.LocalNotification.dll
19:38:44:477    Loaded assembly: /data/data/com.prometheansoftworks.myapp/files/.__override__/Microsoft.Maui.Controls.Compatibility.dll [External]
19:38:44:632    Loaded assembly: /data/data/com.prometheansoftworks.myapp/files/.__override__/Plugin.LocalNotification.dll [External]
...

新建项目启动输出

16:30:52:881    > am start -a "android.intent.action.MAIN" -c "android.intent.category.LAUNCHER" -n "com.companyname.ugg/crc642c019dd32d8d358c.MainActivity"
16:30:52:996    > Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.companyname.ugg/crc642c019dd32d8d358c.MainActivity }
16:30:53:646    Loaded assembly: /data/data/com.companyname.ugg/files/.__override__/Ugg.dll
...

解决思路

  • 清理.NET SDK环境并修复工作负载
    卸载.NET 7 SDK,通过VS安装器修复.NET 6移动开发工作负载,确保Android SDK、NDK、MSBuild工具链版本与.NET 6完全匹配,避免多SDK环境的残留冲突。

  • 临时禁用XAML Hot Reload排查
    右键项目→属性→调试,取消勾选"启用XAML Hot Reload",重新调试启动。若卡顿消失,说明Hot Reload配置在SDK切换后出现异常,可尝试删除项目根目录的.hotreload文件夹后重新启用。

  • 彻底清理调试缓存与模拟器状态

    1. 打开Android设备管理器,选中目标模拟器执行"擦除数据"操作,重置模拟器系统状态;
    2. 删除项目的bin/、obj/目录,清理%USERPROFILE%\AppData\Local\Xamarin\下的Android缓存文件;
    3. 重启VS和模拟器后重新构建部署。
  • 验证程序集打包配置
    编辑Android项目的.csproj文件,确认以下配置未被修改:

    <PropertyGroup>
      <!-- 启用程序集打包到bundles -->
      <AndroidUseAssemblyStore>true</AndroidUseAssemblyStore>
      <AndroidEnableAssemblyBinarySerialization>true</AndroidEnableAssemblyBinarySerialization>
    </PropertyGroup>
    

    若配置缺失或被设为false,会导致程序集无法打包,只能从__override__目录加载,大幅增加启动时间。

  • 重置VS调试配置
    打开VS"工具→导入和导出设置→重置所有设置",选择"Visual C#开发设置"(或对应移动开发配置),重置调试相关的默认设置,消除SDK切换后残留的配置异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:56:05