使用shrinkResources时,AppCompat V7崩溃

5

我在我的gradle项目中启用了新工具shrinkResources,但由于找不到一个AppCompat颜色xml文件,可能被该工具删除了,导致该项目构建失败。

11-03 11:30:19.095: E/AndroidRuntime(24797): 导致的原因是:android.content.res.Resources$NotFoundException:从颜色状态列表资源ID#0x7f090192中找不到文件res/color/abc_primary_text_material_dark.xml。 在android.support.v7.widget.Toolbar的构造函数中,调用了TintManager.getThemeAttrColor()方法。该方法使用颜色状态列表资源ID尝试获取颜色值。但是,在此过程中,出现了Resources$NotFoundException异常,因为它无法找到所需的xml类型的颜色状态列表资源。最终,这个异常被抛出并导致程序崩溃。
我在我的proGuard文件中添加了AppCompat V7(请记住,运行shrinkResources工具需要proGuard),但似乎出现了与shirnkResources相关的问题。
以下是ProGuard文件中的代码:
# support-v7 -dontwarn android.support.v7.** -keep class android.support.v7.internal.** { *; } -keep interface android.support.v7.internal.** { *; }
你有什么想法吗?

1
听起来像个bug。如果在这里得不到帮助的话,可以尝试在adt-dev的Google Group寻求帮助,或者在http://b.android.com上提交一个问题(因为工具团队会比较关注这些问题)。如果你能创建一个能重现问题的示例项目,那将有助于修复这个bug。 - CommonsWare
谢谢@CommonsWare,我也在Google Plus上直接问了Tor Norbye。 - Aracem
3个回答

0

我曾经遇到过类似的问题,我的colors.xml仅适用于v21,而我正在API 19设备上进行测试。创建一个适用于所有版本的colors.xml解决了这个问题。


0

这一定是appcompat中的一个bug。我之前在abc_screen_simple.xml上也遇到了类似的问题。

资源缩减在Lollipop发布前大约一个月一直有效,但现在已经失效了。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接