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

生成签名APK时Google Map KmlLayer报错:无法找到符号

解决方案

1. 对齐资源命名与代码引用

  • Android资源文件名仅支持小写字母、数字、下划线和点,不能有大写或特殊字符。先确认res/raw下的KML文件实际命名(比如错误提示的kolkatapujamap.kml),然后把代码里的引用改为对应小写的R.raw.kolkatapujamap,确保文件名和代码引用完全一致。
  • 如果你的KML文件名为MapName.kml,必须先重命名为mapname.kml,再修改代码为R.raw.mapname。

2. 阻止签名打包时误删资源

签名APK默认开启资源收缩,可能会误删未被显式引用的KML文件。在模块级build.gradle中添加规则保留目标资源:

android {
    buildTypes {
        release {
            shrinkResources true
            // 保留raw目录下的目标KML文件
            keepResources.add("raw/kolkatapujamap")
        }
    }
}

如果不需要资源收缩,也可以直接将shrinkResources设为false,但建议用精准保留的方式优化包体积。

3. 修正R类引用

  • 确保代码中导入的是你项目自身的R类(比如com.yourpackagename.R),而非系统的android.R,后者无法识别自定义资源。
  • 执行Build -> Clean Project后再Build -> Rebuild Project,强制重新生成正确的R类,避免旧缓存导致的引用错误。

4. 验证文件状态

  • 确认res/raw目录下确实存在目标KML文件,且文件未损坏(可重新复制一次原文件到该目录)。
  • 在Android Studio中右键该文件,查看Properties,确认Resource Type为raw,未被标记为排除编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:52:06