错误获取'android:label'属性:属性不是字符串值

时间:2011-09-28 01:38:21

标签: android google-play

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

我在这里查看了所有类似的主题,例如:

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> 

5 个答案:

答案 0 :(得分: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目录中的build-tools中找到)

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 :(得分:1)

为了调查,我遵循以下方法:

  1. 逐一评论活动
  2. 构建签名版本
  3. 运行aapt dump badging / path / to / your / apk
  4. 查看错误并重复
  5. 这让我可以缩小到问题的根源。只是一个没有资源的字符串而不是标签没有在应用程序中使用。我删除了label属性作为修复。

答案 2 :(得分: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崩溃了

答案 3 :(得分:0)

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

答案 4 :(得分:0)

在我的情况下,默认的string.xml丢失了,意外地从项目中删除了。

我用:

disable 'ExtraTranslation'
disable 'MissingTranslation'
在gradle中,我没有证据表明缺少string.xml文件。