【问题标题】:Android Studio exports strings from support library to APKAndroid Studio 将字符串从支持库导出到 APK
【发布时间】:2013-12-15 08:40:55
【问题描述】:

最近我从 Eclipse 切换到 Android Studio。我有一个具有多个模块依赖项的项目。一个依赖项是支持库 appcompat,包含如下:

dependencies {
    compile "com.android.support:appcompat-v7:19+"
}

在 Android 文档中,我发现这个库需要与资源一起导入,这似乎工作正常。我在项目中使用该库没有问题。

问题是,当我构建一个 APK 并运行 aapt 时,输出显示:

locales: '--_--' 'de' 'nl' 'pl' 'sl' 'fr' 'cs' 'es' 'it' 'ca' 'da' 'fa' 'ja' 'nb' 'af' 
'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'hr' 'sr' 'tr' 
'lt' 'pt' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr_CA' 'lo_LA' 'en_GB' 'et_EE' 'ka_GE' 
'km_KH' 'zh_HK' 'hy_AM' 'zh_CN' 'en_IN' 'mn_MN' 'es_US' 'pt_PT' 'zh_TW' 'ms_MY'

但事实并非如此,我的应用仅支持前 8 种列出的语言。当我将此 apk 上传到 Play 时,它向我展示了对以前版本的更改(使用 eclipse 构建),它说我添加了 47 种语言,但同样,这不是真的。 来自 Play 开发控制台的屏幕截图:

我在Google code 上发现了类似的问题,但没有任何响应,我希望解决这个问题,因为我必须上传我的新 APK 才能玩。

知道如何摆脱这 47 种其他语言,而图书馆必须保持与资源一起导入,才能正常工作?

更新:Google code 上,他们说这是目前的预期,他们正在寻求添加一种方法来选择您想要包含在 apk 中的内容。

【问题讨论】:

  • 为什么这对你来说真的有问题?如果您的主代码不支持某些语言,框架将回退到默认字符串,如果它们存在,则仍使用库的翻译字符串
  • @Marcin:唯一的问题是 Play 商店认为我的应用支持所有这些语言。我知道该应用程序可以正常使用回退到默认字符串。

标签: android android-studio android-resources android-support-library apk


【解决方案1】:

code.google.com 他们说 gradle 插件可以选择限制资源,因为版本 0.7.0 已发布。

注意version 0.7.0 Release notes

产品风味(和默认配置)的新选项允许过滤 通过 aapt 的 -c 选项获取资源

  • 您可以通过 DSL 传递单个值 (resConfig) 或多个值 (resConfigs)。
  • 默认配置和风格中的所有值都会合并并传递给 aapt。
  • "basic" sample

以下是一些示例代码,可放入项目的 build.gradle 文件中:

android {
    defaultConfig {
        resConfigs "en", "de", "es" //Define languages that your app supports.
    }
}

我花了很多时间找到“基本示例”...可能是发行说明中的​​链接:/所以有链接:

注意: 0.7.x 版本需要 Android Studio 0.4.+ 和 Gradle 1.9。

【讨论】:

【解决方案2】:

Xamarin.Android 解决方案可能会帮助面临此问题的人。如果您使用 Google Play 服务,也会出现问题。使用支持的应用语言将以下内容添加到 Android 项目 .csproj

<PropertyGroup>
     <AndroidUseAapt2>true</AndroidUseAapt2>
     <AndroidAapt2LinkExtraArgs>-c de,el,es,fr,it</AndroidAapt2LinkExtraArgs>
</PropertyGroup>

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2017-03-27
    • 2013-10-15
    • 1970-01-01
    相关资源
    最近更新 更多