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

如何在Android App Bundle中包含预构建原生库的调试符号?

背景信息

向Play Store上传使用原生库的应用时,必须同步上传原生调试符号,才能获取可用的崩溃/ANR分析信息。
如果未上传符号文件,会收到如下警告:

此App Bundle包含原生代码,但您尚未上传调试符号。建议您上传符号文件,以便更轻松地分析和调试崩溃与ANR问题。

过去上传.apk格式应用时,需要手动上传这类调试信息。现在使用.aab格式时,如果原生库是通过Android Studio构建的,只需设置android.defaultConfig.ndk.debugSymbolLevel = 'FULL',构建出的.aab就会自动包含调试信息,上传单个文件即可完成全部流程。

预构建库场景

并非所有场景都适合或需要在Android Studio内构建原生库,很多时候库是外部预构建的,仅被Android Studio引用而不参与构建。Android Studio通过指定目录结构支持该用法,只需将库存放到正确的src/main/jniLibs/{ABI}路径下,就会被自动识别并打包到App Bundle中。

现存问题

  • Android Studio可构建包含Play Store可识别调试信息的.aab,无需手动上传符号文件;
  • Android Studio支持按指定路径结构引入预构建原生库;
  • 但目前没有公开文档说明如何同时实现上述两点:引入预构建原生库的同时,将其调试信息打包进.aab,从逻辑上该能力理应存在。

查阅大量资料后仍未找到相关操作说明:预构建库对应的调试信息需要存放在哪个路径才能被打包进.aab?是否存在专用存放路径?是否需要特定文件扩展名?是否需要通过Gradle做额外配置?还是该能力目前根本不支持?

已尝试的方案及结果如下:

  • 不拆分调试信息,直接将调试信息保留在.so文件中:该方案下Play Store不会剥离调试信息,会向用户推送体积庞大的调试版构建产物;
  • 将调试信息拆分为.so.dbg后缀的文件,和.so文件放在同一路径下:这类文件不会被打包进.aab;
  • 按照官方指引在上传.aab后手动压缩并上传符号文件:该方案可行,但便捷性远不如直接将符号打包进.aab;
  • 构建由Android Studio编译原生库的示例应用做对照,验证该场景下确实会自动打包调试信息,并确认了调试文件的扩展名,示例.aab内容见截图:
    示例AAB文件内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:21:14