在将APK上传到Play商店时获取“’android:icon’属性:属性不是字符串值”错误

背景

经过这么多小时的空闲时间,我准备将我的第一个应用程序发布到游戏商店,但遗憾的是我在上传已签名的应用程序时遇到了困难。

我已经使用我创建的密钥库(所有这些都通过Eclipse和ADT)成功导出了应用程序,因此我将已签名的APK上传到Play商店( 此处 )。

问题

我一直收到这条消息:

上传失败您的APK无法使用’aapt dump Badging’进行分析。 错误输出:无法运行aapt转储标记:W / ResourceType(14856):获取资源号0x01080049时没有已知包错误获取’android:icon’属性:属性不是字符串值

因此:

在此处输入图像描述

应用程序本身在真实设备上运行良好,正在使用的图像文件是android-assets-studio网站使用的普通PNG文件。

我试过的

我在这里搜索了StackOverflow,发现了很多关于它的post( 这里 )。 我已经读了很多,并尝试了下一步,但没有任何帮助:

  1. 将应用程序图标放在不同的文件夹(“drawable”,“drawable-mdpi”,…甚至“drawable-xxxhdpi”)中,具有多种组合(从每个文件夹中放入/删除)。

  2. 在“应用程序”标签和启动器活动标签上设置标签,图标和主题。

  3. 更改图像文件名和文件本身(将其替换为默认的应用程序图标)。

  4. 清理项目。

  5. 检查Lint消息。

  6. 更新ADT(至22.3.0.v201310242005-887826),Eclipse(至Kepler Service Release 1),SDK工具(至22.3),SDK构建工具(至19.0.1)。 一切都是最新的官方版本。

  7. 检查是否没有使用双jar文件(多个库上没有jar文件,特别是如果它有不同的版本)。

  8. 尝试将strings.xml放入“res / values-en”而不是“res / values”

  9. 尝试将“android:value”属性添加到清单上的所有元数据标记(由Google建议)。 它没用。 事实上,在我读过的所有教程中,我从来没有从AppWidget看到过这样的要求,所以我认为不需要它。

  10. 尝试了aapt命令:

    aapt dump badging 

这向我展示了游戏商店显示的相同内容(我已经用XXX替换了真正的包名和应用名称):

 application: label='XXX XXX' icon='res/drawable-mdpi/app_icon.png' launchable-activity: name='XXX.XXX.XXXActivity' label='XXX XXX' icon='res/drawable-mdpi/app_icon.png' W/ResourceType( 9132): No known package when getting value for resource number 0 x01080049 ERROR getting 'android:icon' attribute: attribute is not a string value 

即使文件存在于此文件夹中,也会发生这种情况。

这是清单。 再次,用XXX替换了活动和应用程序的真实路径和名称。 我可以向你保证路径是正确的,因为应用程序可以正常运行。

                       ... (other activities and services) 

这个问题

到底是怎么回事?

我该如何克服这个问题?

Solutions Collecting From Web of "在将APK上传到Play商店时获取“’android:icon’属性:属性不是字符串值”错误"

如果你使用任何android系统图标作为活动图标 (即清单包含

对我而言,我试图将透明图标放在这样的事实:

android:icon="@android:color/transparent"

在我的情况下,问题只是我的应用程序的一个依赖项已经宣布他们的一个活动是在他们的清单中使用android:icon =“@ color / black”,而不是使用drawable。 您没有收到任何编译错误,应用程序运行正常。 只有aapt工具报告错误(或上传到Playstore)。 请注意,库甚至不需要声明android:icon(它们不是可安装的应用程序!)但是AndroidStudio似乎默认所有项目都在清单中声明一个。

我知道答案是正确的,但我相信我的经验可以帮助一些人……

所以我收到同样的错误:

错误获取’android:icon’属性:属性不是字符串值

但我的问题与图标无关!!!

我收到此错误的原因在于:

机器人:标签= “@字符串/ APP_NAME”

我的项目有3种不同的语言,但主string.xml没有@ string / app_name ……这就是原因!

所以要小心!

我看到你尝试了我所想的一切。 尝试更换图标可能吗? :)我的意思是只留下可能性是你的偶像。

尝试为不同的屏幕尺寸创建单独的布局。 将文件夹命名为res/layoutres/layout-large

当我尝试使用XML drawable作为图标(为PNG图像添加填充等)时,我认为我遇到了这个问题(或者类似的,不确定)。 我不认为你的问题是一样的,因为你似乎直接引用了PNG文件。

尝试的一些建议(通过消除过程追踪问题):

  • 删除res/drawable-mdpi/app_icon.png文件,看看是否有其他错误。
  • 删除清单中的所有android:icon属性,看看是否仍然出现错误。
  • 将项目中名为app_icon任何其他资源重命名为其他资源。

如果所有其他方法都失败了,我可能会开始剥离外部JAR和库项目(并可能暂时评论引用它们的代码),只是为了查看错误是否被其中任何一个触发。 或者可以从最初的AndroidManifest.xml开始,并一次添加一个项目。

另一个想法是试图找出aapt为何产生错误。 也许下载源并尝试调试它?

您是否尝试关闭计算机然后再打开?

尝试从Activity中删除android:icon="@drawable/app_icon ,因为它将回退到Application中指定的图标。

尽量不要使用proguard。

在可能的情况下,问题是因为我使用@null作为值。 完全删除它修复它。 将@null用于android:icon时会发生同样的情况。

今天我遇到了同样的问题,@ Rahl_Pryde的解决方案在一个小小的改变下运行良好。

在我的情况下,问题是我的一些活动图标的android透明res颜色。 但是改为局部透明色并不能解决问题。

将图标从透明颜色更改为2×2透明png时固定。

在我的情况下,我通过使用始终默认res文件夹,即值,值-es,值-ca解决了它

在我的情况下,问题出现了,因为我在发布之前更改了包名,忘了更改目录名。 项目仍在编译,但无法在谷歌播放中发布。

如果您的红色带下划线的包名称有错误,请检入任何java文件

‘包名称xxx.yyy.zzz与文件路径’xxx.eee.zzz’不对应。

在我的情况下,将我用于我的应用程序图标的png复制到我的“drawable-nodpi”文件夹中,Play商店接受了我的apk。 如果您没有nodpi文件夹,那么您可能只需要将其从与桶大小相关的可绘制文件夹中复制出来,然后将其粘贴到基础文件夹“drawable”中。

这似乎是最近的Play商店要求,因为我从来没有在今天看到这个错误。 记下androiddeveloper的评论。