Android 14中MapboxNavigationApp初始化崩溃,需指定导出属性
解决Android 14下Mapbox导航初始化崩溃问题
问题原因
你没直接注册广播接收器,但Mapbox Navigation SDK内部在初始化时注册了广播接收器,旧版本SDK未适配Android 14的新要求——所有非仅接收系统广播的接收器必须显式指定RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED属性,因此触发系统崩溃报错。
解决方案
- 优先升级Mapbox Navigation相关SDK到适配Android 14的版本:
Mapbox已在较新版本中修复该问题,比如将导航核心SDK升级到2.18.0及以上(对应模块版本需保持一致)。修改Module级别的build.gradle依赖:// 示例依赖,根据你实际使用的模块调整 implementation 'com.mapbox.navigation:core:2.18.0' implementation 'com.mapbox.navigation:ui:2.18.0' - 若暂时无法升级SDK,可尝试在
AndroidManifest.xml中为Mapbox内部广播接收器添加导出属性(不推荐,后续SDK更新可能失效):
通过查看合并后的Manifest文件找到Mapbox注册的接收器,添加android:exported属性:<receiver android:name="com.mapbox.navigation.core.internal.telemetry.TelemetryReceiver" android:exported="false" />
验证
完成修改后重新编译运行App,导航初始化代码即可正常执行,不会再触发该崩溃。
内容的提问来源于stack exchange,提问作者Anil Dhiman
相关产品推荐
相关产品推荐

