Xamarin 构建Archive归档时永久卡住,Release模式偶成Debug运行正常
问题排查方向
- 开启诊断级构建日志:打开Visual Studio → 工具 → 选项 → 项目和解决方案 → 生成并运行,将「MSBuild项目生成输出详细程度」调整为诊断,重新执行Release构建,卡住时查看输出窗口最后滚动的日志内容,可直接定位到具体卡住的执行环节。
- 排查文件锁定问题:偶发构建成功的表现高度符合文件被外部程序锁定的特征,先检查项目所在磁盘的bin、obj目录是否被杀毒软件、企业安全管控工具实时扫描,临时关闭扫描后再测试;同时确认当前Windows账号对项目目录拥有完全控制权限。
- 清理构建缓存:手动删除项目根目录下的bin、obj文件夹,清除所有历史构建缓存的临时文件后重新执行Release构建,排除旧的AOT配置文件、临时编译文件损坏导致的卡死问题。
- 验证Profiled AOT影响:你Release配置中开启了
AndroidEnableProfiledAot=true(Debug模式为关闭状态),该功能依赖启动trace生成的AOT优化配置,若配置文件异常会导致构建卡住,可临时将该配置改为false测试构建是否正常。
R8关联验证
该问题确实有可能是R8导致的,你Release配置中设置了AndroidLinkTool=r8,而Debug模式未开启代码链接,你可以通过以下方式验证:
临时修改Release配置的AndroidLinkMode为None,或者将链接工具替换为proguard,重新执行构建,若调整后不再出现卡死问题,即可确认是R8相关问题。
若确认是R8导致,可添加自定义R8规则跳过第三方依赖库的裁剪,或者升级当前Visual Studio 2019的Xamarin.Android版本,旧版本Xamarin集成的R8存在已知的偶发卡死bug。
内容的提问来源于stack exchange,提问作者devonuto
相关产品推荐
相关产品推荐

