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

启动Google MapsActivity偶发Resources$NotFoundException异常求助

问题根因与修复方案

根因定位

从报错栈的底层异常可以看出崩溃是android.content.res.Resources$NotFoundException触发,本质是Google Maps SDK 18.0.0版本的动态加载(dynamite模块)存在资源读取适配缺陷:

  • 开发阶段使用Android Studio的Apply Changes/快速部署功能时,仅更新代码未全量刷新资源索引,会导致应用R类的资源ID和实际打包的资源映射不匹配,Maps SDK读取系统维度资源时找不到对应ID触发崩溃
  • Google Play Services会缓存Maps动态模块的资源映射关系,修改应用代码触发资源ID重新生成后,缓存映射与新ID冲突就会触发崩溃;卸载应用会清空关联的动态模块缓存,所以问题会临时消失

修复方案

临时解决方案

开发阶段修改Maps相关代码后,执行Clean Project -> Rebuild Project后全量安装APK,不要使用快速部署功能即可避免触发崩溃。

永久解决方案

  1. 升级Google Maps SDK到18.2.0及以上稳定版,该版本已修复动态资源加载的适配问题
  2. 若暂时无法升级SDK,可将XML布局中静态声明的SupportMapFragment改为代码动态创建,规避XML加载时的资源读取问题:
// MapsActivity onCreate中替换原布局加载逻辑
val mapFragment = SupportMapFragment.newInstance()
supportFragmentManager.beginTransaction()
    .add(android.R.id.content, mapFragment)
    .commit()
// 后续照常调用getMapAsync即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:24:04