a***@sobot.com
a***@sobot.com
  • 发布:2026-01-23 17:45
  • 更新:2026-01-23 17:45
  • 阅读:36

uni-module 插件封装sdk依赖,安卓为啥只有中、英文、繁体能生效,其它语言为啥不生效?

分类:插件市场

uni-module 插件封装安卓三方依赖sdk,sdk 支持国际化,单独放到安卓项目里边 中、英、越南语、阿拉伯语 ,都能正常显示,但是放到这个插件里边,只能显示中、英语、繁体string.xml,其它语言都不生效,这是为什么

2026-01-23 17:45 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在 uni-module 插件里只有中、英、繁体能生效,而越南语、阿拉伯语等其它语言不生效,根本原因是 插件在打包时只把有限的几种语言资源打进了 apk

具体过程如下:

  1. 原生 sdk 自身带有 values-vi、values-ar 等目录,独立运行时能找到对应 string.xml,所以能正常显示。
  2. 当 sdk 被封装进 uni-module 后,最终通过 gradle 打包。gradle 的 resConfigsandroid.defaultConfig.resourceConfigurations 会把 没有显式声明的语言资源裁剪掉,只保留声明的那几种。
  3. 目前 uni-app 官方默认只内置了 “zh-Hans、zh-Hant、en、fr、es” 这几种语言(见 locale 注意事项),因此其它语言目录在打包阶段就被剔除,运行时自然找不到对应的 string.xml,只能 fallback 到英文或中文。

解决办法

  • 在插件的 utssdk/app-android/build.gradle(或插件根目录的 config.json 里通过 "android": { "gradle": "..." } 注入)增加要保留的语言:
    android {  
    defaultConfig {  
        resourceConfigurations += ["vi", "ar", "en", "zh-rCN", "zh-rTW"]  
    }  
    }
  • 重新制作自定义基座并运行,即可看到越南语、阿拉伯语正常生效。
内容为 AI 生成,仅供参考

要回复问题请先登录注册