【问题标题】:aapt error for Dump badging转储标记的 aapt 错误
【发布时间】:2017-07-03 20:09:56
【问题描述】:

好的,我突然遇到了这个问题,不确定是什么原因造成的,当我将 apk 上传到游戏商店时,它说

无法运行 aapt 转储标记:AndroidManifest.xml:425:错误:错误 获取“名称”属性:属性不是字符串值

清单在这里看起来不错

<activity
        android:theme="@ref/0x7f0b0142"
        android:label="@ref/0x7f0802ab"
        android:name="<absolute path like a.b.c.activityname>"
        android:launchMode="1"
        android:screenOrientation="1"
        android:parentActivityName="absolute path like a.b.c.activityname" />

当然,上面的查找是在最终清单上的 apk 分析器中完成的。

确实通过在本地运行所有以下都没有错误来验证

aapt 转储字符串
aapt 转储权限 aapt 转储资源
aapt 转储配置

当我执行转储徽章时出现的错误

获取“名称”属性时出错:属性不是字符串值

还有

aapt 列表 -v -a

这非常令人困惑,为什么活动名称是由字符串解析的,即使它的形式为 a.c.b...activityname 任何想法?这是怎么回事

【问题讨论】:

  • 您是否编辑过要发布的输出?为什么名称条目中有“”符号?对于 XML 文件,这似乎很可疑。 api doc 明确表示该字段是字符串,应该是完全限定的类名或使用简写方法。
  • 我编辑了在这里发布的值,是的,xml 中没有 ,而且这个 apk 编译并运行良好 aapt 因转储标记而失败

标签: android android-gradle-plugin android-manifest aapt


【解决方案1】:

好的,解决了 aapt 报告错误的错误

简单的解决方案/解决方法是不使用字符串资源作为类别名称。

<category android:name="@string/example" > 

替换为:

<category android:name="com.example.package">

【讨论】:

  • 我刚遇到这个并且有一个类似的解决方案。这很令人困惑,因为aapt dump badging 报告的行号与您可以在 APK 分析器中看到的清单中的行号不匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多