.NET MAUI Blazor Hybrid从.NET8升级到.NET9后发布安卓签名包报错
.NET 9 MAUI Blazor Hybrid 发布Android签名包时XA2001错误解决办法
问题描述
项目最初基于.NET7创建,升级到.NET8运行正常,升级到.NET9后,通过命令行发布Android签名应用包时触发XA2001错误,提示找不到obj/Release/net9.0/compressed/目录下的多个.gz文件,已尝试清理重建项目、更新依赖但无效。
CLI错误日志:
[232/234] Java.Interop.dll -> Java.Interop.dll.so [233/234] Mono.Android.dll -> Mono.Android.dll.so [234/234] System.Private.CoreLib.dll -> System.Private.CoreLib.dll.so <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\0wz98yz2xy-ln71fuhiq0.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\0wz98yz2xy-ln71fuhiq0.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\3t6q0cs9y8-43m9p5349d.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\3t6q0cs9y8-43m9p5349d.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\4l3s7nsc0j-8x4eooawvc.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\4l3s7nsc0j-8x4eooawvc.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\jposvdsglt-h5gslb8p3n.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\jposvdsglt-h5gslb8p3n.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\n12flnyxzq-qvny4wtqki.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\n12flnyxzq-qvny4wtqki.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\q731hh5ls5-fipu15mg5j.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\q731hh5ls5-fipu15mg5j.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\tzxjg6is5z-mj9omvu2v8.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\tzxjg6is5z-mj9omvu2v8.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\w4ra1jcf9h-luzdqbu196.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\w4ra1jcf9h-luzdqbu196.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\yuj0dz1wdz-lvbl4zggu8.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\yuj0dz1wdz-lvbl4zggu8.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\x1cogavxrv-erjoepzw21.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\x1cogavxrv-erjoepzw21.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] <path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\x1cogavxrv-erjoepzw21.gz : error XA2001: Source file '<path>\bluelotus360.com.mauimulti\obj\Release\net9.0\compressed\x1cogavxrv-erjoepzw21.gz' could not be found. [<path>\bluelotus360.com.mauimulti.Droid\bluelotus360.com.mauimulti.Droid.csproj] ##[error]Bash exited with code '1'.
解决办法
1. 彻底清理项目构建缓存
- 手动删除项目根目录下的
bin、obj文件夹,包括Android项目子目录下的对应文件夹 - 执行命令行清理:
dotnet clean --configuration Release - 重启命令行工具后再尝试发布
2. 禁用.NET 9的压缩优化(临时绕过)
在Android项目的.csproj文件中添加以下属性,禁用程序集压缩:
<PropertyGroup> <AndroidEnableAssemblyCompression>false</AndroidEnableAssemblyCompression> </PropertyGroup>
添加后重新发布,此设置会跳过.gz文件的生成和打包,可快速验证是否为压缩流程导致的问题。
3. 检查.NET 9 SDK安装完整性
- 卸载当前.NET 9 SDK,重新下载并安装官方最新版本
- 验证SDK安装:
确保输出中包含正确的.NET 9版本dotnet --list-sdks
4. 检查项目文件中的残留配置
打开项目的.csproj文件,查找是否存在从.NET7/.NET8遗留的、与Android打包相关的旧配置节点,比如AndroidPackageFormat、AndroidUseAapt2等,移除或更新为.NET 9兼容的配置。
5. 尝试创建空白.NET 9 MAUI Blazor项目对比
创建一个新的空白.NET 9 MAUI Blazor Hybrid项目,尝试命令行发布Android签名包,验证是否能正常完成。如果新项目正常,说明原项目存在配置或依赖冲突,可逐步迁移原项目的代码和资源到新项目中排查问题。
内容的提问来源于stack exchange,提问作者Gayantha
相关产品推荐
相关产品推荐

