Изменить язык Android-приложение с классом ContextWrapper не работает в режиме релиза - PullRequest
0 голосов
/ 21 сентября 2019

Я реализовал этот код для изменения языка приложения, и он корректно работает в эмуляторе с API 23, 24, 25, 26, 27 и 28 и в реальном устройстве также при установке в "Active BuildВариант " mode в " debug " state

Информация: Android N меняет язык программно

Но когда я загружаю приложение в GooglePlay Store в режиме «Active Build Variant» в режиме «release» указывает, что смена языка не работает на реальном устройстве

Что может происходить?Я не знаю, что делать с этой проблемой больше.Я ценю, если вы можете мне помочь.Спасибо

Мой статический метод ContextWrapper, класс Config:

    public static ContextWrapper changeLang(Context context, String lang_code){
    Locale sysLocale;

    Resources rs = context.getResources();
    Configuration config = rs.getConfiguration();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        sysLocale = config.getLocales().get(0);
    } else {
        sysLocale = config.locale;
    }

    if ( !lang_code.equals("") ) {
        Locale locale = new Locale(lang_code);
        Locale.setDefault(locale);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            config.setLocale(locale);
        } else {
            config.locale = locale;
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            context = context.createConfigurationContext(config);
        } else {
            context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
        }
    }

    return new ContextWrapper(context);
}

Мой код активности

    @Override
protected void attachBaseContext(Context newBase) {
    pref = PreferenceManager.getDefaultSharedPreferences( newBase );
    String lang_code = pref.getString("LANG_APP","");

    Context context = Config.changeLang(newBase, lang_code);
    super.attachBaseContext(context);
}

Что может происходить?Я не знаю, что делать с этой проблемой больше.Я ценю, если вы можете мне помочь.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...