【问题标题】:Resource not found exception for vectordrawables找不到vectordrawables的资源异常
【发布时间】:2018-07-01 12:51:26
【问题描述】:

我以编程方式使用矢量绘图而不是 png :

getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_navigate_before_black_24dp));

一切正常,但应用程序在 android 4.2 及更低版本中崩溃。我得到以下日志

Caused by: android.content.res.Resources$NotFoundException: 
at android.content.res.Resources.loadDrawable (Resources.java:2842)
at android.content.res.Resources.getDrawable (Resources.java:1521)
at android.app.Activity.performCreate (Activity.java:5326)
at android.app.Instrumentation.callActivityOnCreate    (Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity  (ActivityThread.java:2218)
Caused by: org.xmlpull.v1.XmlPullParserException: 
at android.graphics.drawable.Drawable.createFromXmlInner (Drawable.java:917)
at android.graphics.drawable.Drawable.createFromXml (Drawable.java:858)
at android.content.res.Resources.loadDrawable (Resources.java:2839)

我正在使用 gradle 3.0.1 并且还添加了

vectorDrawables.useSupportLibrary = true

仍然没有帮助。

【问题讨论】:

  • 可能是语法问题。
  • 我会努力的。
  • 请查看此帖子的已接受答案:stackoverflow.com/questions/35633410/…
  • 你必须更正你的矢量drawable路径,如果drawable显示在drawable文件夹中,那么清理你的项目

标签: android android-layout xml-parsing android-gradle-plugin


【解决方案1】:
  1. 检查矢量可绘制<path>。有时,当 XML 文件中的 <path> 标记太长时会发生这种情况。
  2. 尝试将您的图片从drawable 移动到drawable-nodpi

更新

  1. 尝试使用 AppCompatResources.getDrawable(view.getContext(), id);当变得可绘制时

【讨论】:

  • 我正在使用从官方谷歌材料设计网站下载的vectordrawables。此外,该应用程序在大多数设备上运行良好,除了三星 Galaxy s duos、小米 note 2 等少数设备
  • 我的 res 文件夹里只有两个文件夹 1.drawable 2.drawable-24
  • @aishrauto 所以创建另一个文件夹
  • 确定@AntonKazakov
  • 您的更新在 Android 5 上运行良好,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多