android – 如何轻松删除不必要的本地化资源从添加的库在版本APK

前端之家收集整理的这篇文章主要介绍了android – 如何轻松删除不必要的本地化资源从添加的库在版本APK前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序很简单,不需要很多本地化.

我提供默认语言(英文)和德语 – 这是我所想要的,将会提供的,因为该应用程序完全集中在德国.

最近我添加了Google Play服务库,我面对的问题是,我的应用程式中添加了56(!!!)种其他语言,就像Google Play商店告诉我一样.原因是:图书馆在我的应用程序中不需要更多的语言资源.如果Google Play对话框以法语显示,其余的仅有英文/德文,这根本就没有意义.

我不想手动从库项目中删除资源,这是乏味且容易出错的.另外,也许我会有另一个应用程序依靠同一个图书馆,那里我想要更多的语言?

那么 – 我该怎么做呢?

谢谢!

解决方法

我明白您的问题,简单的解决方案是从图书馆中删除所有额外的语言,但您需要使用每个新版本的Google Play服务,如您所说,如果您需要其他应用程序中的其他语言,不是最好的选择.

而是试图强制您的应用程序使用德语或英语作为默认值:

您需要在您的Application类中添加代码

@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告诉毕业生你只使用这些语言环境配置,您的库中的所有其他语言将被剥离出APK包!

让我知道这是否适合你!

原文链接:https://www.f2er.com/android/313499.html

猜你在找的Android相关文章