2011-09-28 153 views
9

当我试图将我的应用程序发布到android市场时,出现此错误“ERROR getting'android:label'attribute:attribute is not a string value”。 前段时间这个应用程序已经在市场上成功发布,但是当我在AndroidManifest.xml中应用较小的更改(更改versionCode和versionName)时,我不断得到此错误。错误获取'android:label'属性:属性不是字符串值

我看了所有类似的话题在这里,如:

Android Market Publishing Issues

"ERROR getting 'android:icon' attribute: attribute is not a string value" when trying to upload to the Android Market

The file is invalid: ERROR getting 'android:name' attribute: attribute is not a string value

但这些解决方案帮助了我。你知道这种错误的其他原因吗? 这里是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.samsung.att.deskhome" android:versionCode="12" android:versionName="2.3"> 
<uses-permission android:name="android.permission.READ_CALENDAR" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.SET_WALLPAPER" /> 
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" /> 
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 
<application android:icon="@drawable/mainmenu_icon_homemount" android:label="@string/app_name"> 
<activity android:name=".CradleMain" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:launchMode="singleTask" > 
<meta-data android:name="android.dock_home" android:value="true" /> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.DEFAULT" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
<category android:name="android.intent.category.DESK_DOCK" /> 
</intent-filter> 
</activity>  
<activity android:name=".CradleHomeSettings" android:label="@string/cradle_home_settings" android:launchMode="singleTask" android:configChanges="orientation"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.DESK_DOCK" /> 
</intent-filter> 
</activity> 
<activity android:name=".CradleWeatherSettings" android:label="@string/cradle_weather_settings" android:launchMode="singleTask" android:configChanges="orientation"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.DESK_DOCK" /> 
</intent-filter> 
</activity> 
<activity android:name=".CradleWallpaperChooser" android:label="@string/pick_wallpaper" android:screenOrientation="nosensor" android:finishOnCloseSystemDialogs="true" android:configChanges="locale"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.DESK_DOCK" /> 
</intent-filter> 
</activity> 
</application> 
<uses-sdk android:minSdkVersion="8" /> 
<uses-sdk android:maxSdkVersion="10" /> 
</manifest> 
+6

问题的原因是values/strings.xml不包含“android:label”属性之一,尽管它在其他本地化的strings.xml中。 – amilien

回答

10

每当您在上传确保在本地执行相同的命令来获得适当的输出从Play商店得到一个错误。从在线控制台检索到的输出具有误导性。

从我自己的代码的一个例子,这是我在网上控制台上了:

Failed to run aapt dump badging: 
W/ResourceType(4560): Failure getting entry for 0x7f0601c6 (t=5 e=454) in package 0 (error -75) 
ERROR getting 'android:label' attribute: attribute is not a string value 

这同一工具的本地运行(发现在SDK目录构建工具)

aapt dump badging /path/to/your/apk 

显露等,其中检查失败的位置的有用信息:

package: name='X' versionCode='X' versionName='X' 
sdkVersion:'7' 
targetSdkVersion:'17' 
uses-permission:'android.permission.INTERNET' 
... 
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE' 
uses-feature-not-required:'android.hardware.camera' 
uses-feature-not-required:'android.hardware.camera.autofocus' 
application-label:'Photo Tools' 
application-label-zh:'摄影工具' 
application-label-nl:'Photo Tools' 
application-label-fr:'Photo Tools' 
application-label-es:'Photo Tools' 
application-label-it:'Photo Tools' 
application-label-ru:'Photo Tools' 
application-icon-160:'res/drawable/phototools_icon.png' 
application-icon-240:'res/drawable/phototools_icon.png' 
application-icon-320:'res/drawable/phototools_icon.png' 
application-icon-480:'res/drawable/phototools_icon.png' 
application: label='Photo Tools' icon='res/drawable/phototools_icon.png' 
launchable-activity: name='be.hcpl.android.phototools.PhotoToolsActivity' label='Photo Tools' icon='' 
W/ResourceType(30945): Failure getting entry for 0x7f0601c6 (t=5 e=454) in package 0 (error -84) 
ERROR getting 'android:label' attribute: attribute is not a string value 
+1

我得到同样的错误,你的答案缺少解决方案,你得到这个转储后做了什么 – meda

+2

@meda对我来说,在另一个strings.xml文件中翻译时,缺省的字符串值缺失 – hcpl

1

进行调查,我也跟着个Ë以下方法:

  1. 评论的活动一个接一个
  2. 打造签署发布
  3. 运行AAPT转储徽章/路径/到/你/ APK
  4. 看到错误和重复

这让我缩小了我的问题的根源。只是一个没有资源的字符串,而不是在应用程序中使用标签。我删除了标签属性作为修复。

1

阅读@hcpl答案,如果您无法找到错误,请查找清单中列出的下一个活动。在他的职位:

launchable-activity: name='be.hcpl.android.phototools.PhotoToolsActivity' label='Photo Tools' icon='' 
W/ResourceType(30945): Failure getting entry for 0x7f0601c6 (t=5 e=454) in package 0 (error -84) 
ERROR getting 'android:label' attribute: attribute is not a string value 

你可能会认为这个问题是关系到PhotoToolsActivity,但它是关于下一个活动不得到记录,因为它aapt崩溃

0

检查值/ strings.xml中和值 - xx/strings.xml 您应该确保values/strings.xml中的每个单词必须在values-xx/strings.xml下具有相应的单词。

0

在我的情况下,缺省的string.xml丢失,意外从项目中删除。

我用:

disable 'ExtraTranslation' 
disable 'MissingTranslation' 

在gradle这个,所以我没有失踪string.xml文件的证据。