在 Android 中以编程方式更改语言不适用于从应用程序包格式生成的 APK

Change language programatically in Android not working for APK generated from App bundle format

我的应用程序中有一个功能,用户可以在运行时从应用程序内部 select 各种语言,它工作正常,直到我以 APK 格式在 Play 商店上部署应用程序,但它停止工作,因为我在 App Bundle format 开始部署我的应用程序。默认字符串资源不会被用户 selected 替换,但是当我从设备的设置选项更改整个设备语言时,我的应用程序会更新为来自 Play 商店和所有内容的新配置资源工作正常。 有什么办法可以强制所有字符串资源与基本 apk 一起推送,或者我不知道的任何其他方式?请帮忙。我用来更改语言的代码是 -

        Locale locale = new Locale(langCode); //langCode is the code of the language user has selected
        Locale.setDefault(locale);

        Resources res = parentContext.getResources();
        Configuration config = res.getConfiguration();
        config.setLocale(locale); // = locale;
        res.updateConfiguration(config, parentContext.getResources().getDisplayMetrics());

编辑:

PlayCore API 现在支持按需下载另一种语言的字符串:https://developer.android.com/guide/app-bundle/playcore#lang_resources

我找到了解决方案 。从那里复制

目前,您可以通过在 build.gradle

中添加以下配置来禁用按语言拆分
android {
    bundle {
        language {
            // Specifies that the app bundle should not support
            // configuration APKs for language resources. These
            // resources are instead packaged with each base and
            // dynamic feature APK.
            enableSplit = false
        }
    }
}