Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio将字符串从支持库导出到APK_Android_Android Studio_Android Resources_Android Support Library_Apk - Fatal编程技术网

Android Studio将字符串从支持库导出到APK

Android Studio将字符串从支持库导出到APK,android,android-studio,android-resources,android-support-library,apk,Android,Android Studio,Android Resources,Android Support Library,Apk,最近我从Eclipse切换到Android Studio。我有一个具有多个模块依赖项的项目。一个依赖项是支持库appcompat,如下所示: dependencies { compile "com.android.support:appcompat-v7:19+" } 在Android文档中,我发现这个库需要与资源一起导入,这似乎可以正常工作。我在我的项目中使用这个库没有问题 问题是,当我构建APK并运行aapt时,outpus会说: locales: '--_--' 'de' 'nl

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

dependencies {
    compile "com.android.support:appcompat-v7:19+"
}
在Android文档中,我发现这个库需要与资源一起导入,这似乎可以正常工作。我在我的项目中使用这个库没有问题

问题是,当我构建APK并运行aapt时,outpus会说:

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来播放时,它向我展示了对以前版本(使用eclipse构建)的更改,它说我添加了47种语言,但同样,这不是真的。 剧本devconsole的屏幕截图:

我发现类似的问题,但没有回应,我希望解决这个问题,因为我必须上传我的新APK来玩

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

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

他们说,gradle插件有一个限制资源的选项,因为版本0.7.0已经发布

注:

product Flavor(和defaultConfig)上的新选项允许过滤 通过aapt的-c选项获取资源

  • 您可以通过DSL传递单个值(重新配置)或多个值(重新配置)
  • 默认配置和样式中的所有值都将合并并传递给aapt
下面是一些要放入项目build.gradle文件的示例代码:

android {
    defaultConfig {
        resConfigs "en", "de", "es" //Define languages that your app supports.
    }
}
我花了很多时间查找“基本示例”…可能是发行说明中的一个链接:/

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

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

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

真的
-c de、el、es、fr、it

为什么这对你来说真的有问题?如果您的主代码不支持某些语言,框架将返回默认字符串,这些字符串仍然使用库中已翻译的字符串(如果它们不支持)present@Marcin:唯一的问题是Play Store认为我的应用程序支持这些语言。我知道该应用程序将正常工作,返回默认字符串。回答得很好。(但是这些指向示例的链接给出了HTTP 403或类似错误。)
resconfig
应该在文档()中,而不仅仅是在发布说明中提到的。Eclipse中是否有这样做的方法?这里有一个官方示例: