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

Xamarin Forms适配Android12上传Play Store遇android:exported属性冲突求助

解决Xamarin Forms Android 12上传Google Play及编译重复属性错误

问题根源

  • Android 12及以上版本要求所有带intent filter的组件(Activity、Service、BroadcastReceiver等)必须显式设置android:exported属性,否则无法上传至Google Play。
  • 新版Xamarin.Android构建工具会自动为带有MAIN和LAUNCHER intent filter的启动页Activity添加android:exported="true"属性,若手动在Activity特性中重复设置Exported参数,会导致Manifest合并时出现重复属性,触发编译错误。

解决步骤

  • 移除手动添加的Exported属性:删除Activity类上[Activity]特性中手动添加的Exported=true或Exported=false参数,避免与自动生成的属性冲突。
  • 处理其他带intent filter的组件:如果应用中存在其他带intent filter的Service、BroadcastReceiver等组件,需在对应的特性中显式设置Exported属性:
    • 示例:带外部调用需求的Service:[Service(Exported = true)]
    • 示例:仅内部使用的BroadcastReceiver:[BroadcastReceiver(Exported = false)]
  • 更新Xamarin依赖包:确保Xamarin.Forms、AndroidX相关NuGet包升级至最新稳定版本,旧版本可能未适配Android 12的exported属性自动生成逻辑。
  • 检查AndroidManifest.xml:避免手动在Manifest文件中重复声明组件的android:exported属性,所有组件属性优先通过代码特性配置。

验证方式

编译项目后,查看obj\Release\120\android\AndroidManifest.xml文件,确认所有带intent filter的组件均已正确设置android:exported属性,且无重复声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:05:21