【问题标题】:app bundle default language is not system language应用程序包默认语言不是系统语言
【发布时间】:2020-09-08 15:18:20
【问题描述】:

我的项目是一个支持应用内语言切换的应用。我打包的app bundle可以通过bundletool工具直接安装正确显示系统设置的语言,直接安装的apk也可以正确显示系统设置的语言,但是当我从谷歌下载的时候play下载我的app (google play上传的app bundle),我的app显示的不是系统设置的语言,而是我所在国家对应的语言。安装后所有的安装方式都可以在app里正常切换语言,请问这个问题应该怎么解决。

我的 gradle 配置:

android {

    defaultConfig {
        ...
        multiDexEnabled true
        ...
        ndk {
            abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
        }
        resConfigs "en-rUS", "zh-rCN", "zh-rTW"
    }
    bundle{
        language{
            enableSplit false
        }
    }
}

【问题讨论】:

  • 看看这个并尝试once

标签: android


【解决方案1】:

这个问题已经解决了。原因是AndroidMainfest文件中Application属性中的allowBackup属性配置为true。将其更改为假。在true的情况下,google service会备份app配置文件,但是具体备份哪些文件,具体是怎么备份的,我就不知道了。另外,根据我在使用多语言的过程中遇到的问题,给出了在app中多语言切换的一些小技巧。

提示1:对于androidx.appcompat.appcompat依赖,最好使用1.0.2版本,其他版本会导致部分手机应用内切换多语言

提示 2:捆绑{ 语{ 启用拆分 false } } 如果您需要在应用中切换多种语言,建议将此属性更改为false,仅适用于bundle包。

提示 3:记得配置 resConfigs “ms-rMY”、“zh-rCN”、“zh-rTW” 否则打包时可能无法将多语言资源打包到apk中

最后是我的 build.gradle 配置文件

android{
  defaultConfig{
    bundle{
        language{
            enableSplit false
        }
    }
    resConfigs "ms-rMY", "zh-rCN", "zh-rTW"
  }
}
dependencies{
  implementation group: 'androidx.appcompat', name: 'appcompat', version: "1.0.2"
}

【讨论】:

    猜你喜欢
    • 2019-08-04
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多