我在三星S8(Android9.0)中面临着一个更改语言的问题。我已经上传了一个版本。aab(“Android应用程序捆绑包格式”)文件扩展名到我的应用程序的谷歌播放商店。现在我在播放商店得到这个应用程序,我可以很容易地下载。我已经在多个设备上安装了这个应用程序,运行完美。
但当我改变了三星S8设备上的语言是不工作的在我们的应用程序中,我们使用两种语言英语和日语,但为什么不在三星S8设备工作我不知道和另一个设备它的工作很好。
然后我安装了release。三星S8上的apk及其工作原理。所以我想知道为什么。aab不是工作和工作。apk有效。请给出你的答案。
请检查使用的代码
这是更改语言的基本方法
public void updateLocale() {
String locality = MyApplication.getInstance().getSharedPref().getLanguage();
if (locality != null && !locality.isEmpty() && locality.equals(Locale.ENGLISH.toString())) {
Configuration configuration = getResources().getConfiguration();
if (Build.VERSION.SDK_INT >= 17) {
configuration.setLocale(new Locale(Locale.ENGLISH.toString()));
} else {
configuration.locale = new Locale(Locale.ENGLISH.toString());
}
getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
onConfigurationChanged(configuration);
} else {
Configuration configuration = getResources().getConfiguration();
if (Build.VERSION.SDK_INT >= 17) {
configuration.setLocale(new Locale(Locale.JAPANESE.toString()));
} else {
configuration.locale = new Locale(Locale.JAPANESE.toString());
}
getResources().updateConfiguration(configuration, getResources().getDisplayMetrics());
onConfigurationChanged(configuration);
}
}
在更改语言屏幕上
Switch svChangeLang;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSharedPref = new SharedPreference(getApplicationContext());
svChangeLang = (Switch) findViewById(R.id.sv_change_lang);
String lanCode = mSharedPref.getLanguage();
if (lanCode.equals(Locale.ENGLISH.toString()))
svChangeLang.setChecked(true);
else
svChangeLang.setChecked(false);
svChangeLang.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (!isChecked)
svChangeLang.setChecked(false);
else
svChangeLang.setChecked(true);
mSharedPref.setLanguage(isChecked ? Locale.ENGLISH.toString() :
Locale.JAPANESE.toString());
updateLocale();
}
});
}
默认情况下,应用程序捆绑包不可能做到这一点:Google Play仅在设备所选语言更改时下载资源。
解决方案优先
解决方案二:
android {
bundle {
language {
enableSplit = false
}
}
}
但第二个解决方案增加了应用程序的安全性
问题内容: 现在我知道苹果不推荐这样做。 通常,您不应在应用程序内更改iOS系统语言(通过使用AppleLanguages首选项键)。这违反了在设置应用程序中切换语言的基本iOS用户模型,并且还使用了未记录的首选项键,这意味着将来某个时候,键名可能会更改,这会破坏您的应用程序。 但是,这是一个可以随时更改语言的应用程序,请相信我。我也知道有人问过这个问题:在运行iOS时以编程方式实时更改语言。但是
问题内容: 我在Edittext的addTextChangedListener方法中已自定义,一切正常,但是当我更改语言(语言环境)时,我的addTextChangedListener无法正常工作。 我搜索了我的问题并找到了解决方案: 但我不知道如何使用此代码。 问题答案: 您可以尝试先转换为,然后将其投射到
我正在尝试使用jetpack compose函数更改应用程序的区域设置,如下所示 你可以在https://github . com/MakeItEasyDev/Jetpack-Compose-Multi-Language-Support查看工作示例(没有按钮或文本字段) 但是问题不适用于 OutlinedTextField 或 Buttons,因为当调用此函数时,即使 rightToLeft 支持
问题内容: 我有java.util.logging可以将输出打印到文件中。它工作正常。但是,消息包含中文字符,它们对应于 日志级别 和消息记录的时间。 如何使它打印英文而不是中文字符? 这是当前消息的样子 问题答案: 通过在命令行中传递语言以覆盖操作系统的当前默认语言来启动应用程序。
问题内容: 我发现了只在Android N设备上才能复制的真正奇怪的错误。 在浏览我的应用程序时,可以更改语言。这是更改它的代码。 该代码在我的巡回活动(带电话)中效果很好,但是在接下来的所有活动中,所有String资源都是错误的。屏幕旋转将其修复。我该怎么办?我应该以其他方式更改Android N的语言环境还是仅仅是系统错误? PS这是我发现的。第一次启动MainActivity时(在我的旅
问题内容: 我正在尝试实现可以更改应用程序语言的功能。 我试图这样设置: 在应用重启后,语言仍然是“系统默认值”。 现在,我通过设置来测试不同的语言。 但是,用户是否可以单击按钮,然后在重新启动后查看选择的语言? 另外,执行此操作以避免在重新启动时更改语言的正确方法是什么? 问题答案: 是的,您可以立即更改应用语言,例如, 使用您的NSUserDefaults值来设置语言。