Android 14(API Level 34)下.NET MAUI遇SecurityException问题求助
解决Android 14(API34)下.NET MAUI的SecurityException异常
你遇到的问题大概率是依赖库或MAUI底层组件隐式注册了广播接收器,但没适配Android 14的新权限要求——所有广播接收器必须显式声明android:exported属性(设为true或false),哪怕你自己没写过相关代码。以下是具体解决步骤:
定位未适配的广播接收器
用Android Studio的APK Analyzer打开你生成的MAUI APK,查看合并后的AndroidManifest.xml,找出所有没有android:exported属性的<receiver>标签,这些就是触发异常的源头。手动补充exported属性
在项目的Platforms/Android/AndroidManifest.xml中,针对找到的接收器添加覆盖声明,根据实际场景设置exported值:- 如果接收器只处理应用内部广播,设为
false(更安全) - 如果需要接收外部应用的广播,设为
true
示例代码:
<receiver android:name="com.example.ThirdPartyReceiver" android:exported="false" />- 如果接收器只处理应用内部广播,设为
升级MAUI及依赖包
确保你的.NET MAUI版本是.NET 8及以上的稳定版,微软在新版本中已经修复了底层组件(比如通知、后台任务)对API34的适配问题,升级后很多隐式的广播接收器会自动带上exported属性。排查第三方NuGet包
检查项目中用到的推送、统计、地图类第三方包,尽量升级到支持API34的最新版本,这些包的开发者通常会在新版本中适配Android 14的权限要求。
内容的提问来源于stack exchange,提问作者Aamez Khan
相关产品推荐
相关产品推荐

