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

.NET MAUI项目中品牌专属AndroidManifest.xml未合并问题求助

解决.NET MAUI多品牌AndroidManifest合并问题

核心解决方案:使用AndroidManifestOverlay实现清单合并

你的问题出在试图替换基础清单而非利用MAUI官方支持的清单叠加合并机制。MAUI的Android构建流程支持通过AndroidManifestOverlay项将品牌专属清单合并到基础清单中,而非直接替换主清单。

正确的.csproj配置

修改你的ItemGroup配置为以下形式(保留你的条件判断逻辑):

<ItemGroup Condition="$(Configuration.Contains('-Brand1'))">
  <AndroidManifestOverlay Include="Stuff/Brand1/Android/AndroidManifest.xml" />
</ItemGroup>
  • 无需移除基础的Platforms/Android/AndroidManifest.xml,MAUI会自动将Overlay清单中的配置合并到基础清单中,冲突项会以Overlay的配置为准(遵循Android清单合并优先级规则)。
  • 确保你的条件判断变量正确(你提到条件已正常工作,可保留原有条件)。

针对你的疑问的具体解答

  1. 确保品牌清单被正确合并的步骤

    • 采用上述AndroidManifestOverlay配置,而非替换主清单
    • 彻底清理项目:删除obj和bin目录后再重新构建(比VS自带的清理更彻底)
    • 构建后查看obj/[Configuration]/android/manifest/merged/AndroidManifest.xml(注意是merged子目录下的文件),这里才是最终合并后的完整清单
  2. 你的.csproj配置的问题

    • 之前的配置试图通过LogicalName替换基础清单,但MAUI的构建系统对主清单的识别有固定逻辑,直接替换会绕过官方的合并流程,导致品牌清单未被处理
    • 错误使用AndroidManifest项而非AndroidManifestOverlay:前者对应主清单,后者才是MAUI专为清单合并设计的叠加项
  3. .NET MAUI的额外配置要求

    • 不需要额外全局配置,只需正确使用AndroidManifestOverlay项即可实现多品牌清单合并,这是MAUI针对Android平台提供的原生支持

额外问题解答

你提到的${ApplicationId}语法完全有效,Android构建系统(包括MAUI集成的构建流程)会自动将该变量替换为项目实际的应用ID(对应MAUI项目中ApplicationId属性的值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:57:25