gpt4 book ai didi

android - 如何轻松地从发布 APK 中添加的库中删除不必要的本地化资源

转载 作者:可可西里 更新时间:2023-11-01 18:46:51 29 4
gpt4 key购买 nike

我的应用非常简单,不需要大量本地化。

我提供默认语言(英语)和德语 - 这是我一直想要也将永远提供的,因为该应用程序完全专注于德国。

当我最近添加 Google Play 服务库时,我遇到了一个问题,即 56 种(!!!)其他语言已添加到我的应用程序中,正如 Google Play 商店告诉我的那样。原因是:该库附带了更多我不希望在我的应用程序中使用的语言资源。如果 Google Play 对话框以法语弹出,而其他只有英语/德语,这根本没有任何意义。

我不想从库项目中手动删除资源,这既繁琐又容易出错。另外,也许我会有另一个依赖同一个库的应用程序,并且我想要更多的语言?

那么 - 我怎样才能做到这一点?

谢谢!

最佳答案

我了解您的问题,简单的解决方案是从库中删除所有额外的语言,但是,您需要对每个新版本的 Google Play 服务执行此操作,正如您所说,如果您需要在其他应用程序中使用其他语言,那不是最好的选择。

改为强制您的应用默认使用德语或英语:

您需要在您的应用程序类中添加此代码

@Override
public void onCreate() {
super.onCreate();
avoidOtherLanguages();
// your code here
}

@Override
public void onConfigurationChanged() {
super.onConfigurationChanged();
avoidOtherLanguages();
// your code here
}

public void avoidOtherLanguages() {
if (!Locale.getDefault().getLanguage().equals(Locale.GERMAN.getLanguage()))
{
// when other than german, use english
final Configuration configuration = getResources().getConfiguration();
configuration.locale = Locale.ENGLISH;
getResources().updateConfiguration( configuration, getResources().getDisplayMetrics() );
}
}

希望对你有用!

** 更新:解决方案 **

嗨,经过大量谷歌搜索后想出了一个解决方案!如果您使用 gradle 作为构建系统,您可以在 build.gradle 文件中执行此操作:

   .....
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
versionCode 75
versionName "1.0.0"

resConfigs "en", "de"
}
...

使用 resConfig 告诉 gradle 您仅使用这些语言环境配置,库中的所有其他语言将从 APK 包中删除!

让我知道这是否对您有用!

关于android - 如何轻松地从发布 APK 中添加的库中删除不必要的本地化资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655257/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com