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

.NET MAUI应用APK安装后崩溃,调试模式运行正常

解决.NET MAUI签名APK启动崩溃(程序集未找到)的问题

核心问题

打包签名APK时,assemblies目录下的.NET程序集被压缩,导致Android运行时无法加载这些文件;而调试模式下默认不会压缩这些程序集,所以能正常运行。

修复步骤

1. 修改项目csproj配置

打开你的MAUI项目的.csproj文件,添加以下配置,强制让assemblies目录下的文件以**STORED(未压缩)**状态打包:

<PropertyGroup>
  <!-- 禁止压缩assemblies目录文件,同时启用V2签名 -->
  <AndroidApkSignerAdditionalArgs>--compress none --v2-signing-enabled true</AndroidApkSignerAdditionalArgs>
</PropertyGroup>

<ItemGroup>
  <!-- 标记assemblies下所有程序集为不压缩 -->
  <AndroidAsset Include="assemblies\*" />
  <AndroidAsset Update="assemblies\*" Compress="false" />
</ItemGroup>

如果文件里已有<PropertyGroup>或<ItemGroup>节点,直接把对应内容插入到已有节点中即可,不用重复创建。

2. 清理缓存并重新打包

  • 关闭Visual Studio,删除项目目录下的bin和obj文件夹,彻底清除旧构建缓存
  • 重新打开项目,切换到Release配置,重新生成签名APK
  • 先卸载设备上已装的旧版本应用,再安装新生成的APK

3. 验证配置是否生效(可选)

可以用zipinfo工具检查APK内文件状态:

  • 把APK后缀改成.zip,或者直接执行命令:zipinfo 你的应用文件名.apk assemblies/*.dll
  • 查看输出里每个dll的状态,显示STORED就说明配置生效了

额外提醒

  • 一定要用Release配置打包签名APK,Debug配置虽然不会压缩程序集,但不能用于正式测试
  • 如果你用了第三方NuGet包,上述配置会统一处理assemblies目录下的所有文件,无需单独配置每个包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:20:17