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包!

让我知道这是否适合你!

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...