如何在Xamarin.Android中移除最终AAB文件内的未使用语言?
针对AAB移除无用语言资源的操作说明
可行方案说明
你完全可以对AAB执行类似APK的手动裁剪操作,也可以用官方原生的构建配置实现更稳定的过滤效果,两种方案如下:
方案1:构建阶段自动过滤(推荐)
这是最稳定的方案,不需要手动修改打包后的文件,不会出现签名或结构校验异常:
- 在App模块的构建配置文件中添加
resConfigs配置,指定你需要保留的语言即可,构建AAB时工具会自动丢弃所有未被指定的语言资源 - Gradle Groovy配置示例:
android { defaultConfig { // 按需填写要保留的语言缩写,比如仅保留中英文就写"zh","en" resConfigs "zh", "en" } }
- Gradle Kotlin DSL配置示例:
android { defaultConfig { resConfigs("zh", "en") } }
方案2:手动裁剪已生成的AAB文件
如果你需要修改已经打包完成的AAB,按以下步骤操作即可:
- AAB本质是Zip格式压缩包,直接用解压工具解压到本地文件夹
- 本地化字符串资源存放在各个功能模块的
res/目录下,命名为values-{语言标识}的文件夹就是对应语言的资源目录,直接删除你不需要的语言对应文件夹即可 - 裁剪完成后将所有文件重新打包为Zip格式,再把文件后缀修改为
.aab - 最后使用
jarsigner工具或者Android Studio的签名功能对修改后的AAB重新签名,就可以正常上传Google Play
注意事项
- 手动修改AAB时不要改动根目录下的
BundleConfig.pb等核心配置文件,避免结构校验失败 - 重新打包时要保证目录结构和原AAB完全一致,不要额外多套一层根目录
- 优先选择构建阶段配置的方案,出错概率远低于手动修改
内容的提问来源于stack exchange,提问作者Ilia
相关产品推荐
相关产品推荐

