我在我的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.** { *; }
你有什么想法吗?
adt-dev
的Google Group寻求帮助,或者在http://b.android.com上提交一个问题(因为工具团队会比较关注这些问题)。如果你能创建一个能重现问题的示例项目,那将有助于修复这个bug。 - CommonsWare