找不到矢量可绘制资源的异常

asi*_*uto 0 android xml-parsing android-layout android-gradle-plugin

我以编程方式使用矢量可绘制对象而不是 png,例如:

getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.ic_navigate_before_black_24dp));
Run Code Online (Sandbox Code Playgroud)

一切正常,但应用程序在 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)
Run Code Online (Sandbox Code Playgroud)

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

vectorDrawables.useSupportLibrary = true

仍然没有帮助。

Ant*_*kov 5

  1. 检查矢量可绘制<path>。有时当<path>XML 文件中的标签太长时会发生这种情况。
  2. 尝试将您的图像从 移动drawabledrawable-nodpi

更新

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