在旧版本的Android下,VectorDrawableCompat资源$ NotFoundException

问题描述 投票:2回答:1

我正在转向矢量绘图,即使在较旧的Android版本上它们也能很好地工作。我的应用针对4+。我将其中一个通知切换为矢量图像,为此我必须以编程方式使用VectorDrawableCompat。突然之间我得到了该通知的例外,因为它无法找到资源。

这是例外:

Fatal Exception: android.content.res.Resources$NotFoundException: File res/drawable-hdpi-v4/vector_name.png from xml type xml resource ID #0x7f0201d5
       at android.content.res.Resources.loadXmlResourceParser(Resources.java:3733)
       at android.content.res.Resources.loadXmlResourceParser(Resources.java:3680)
       at android.content.res.Resources.getXml(Resources.java:2215)
       at android.support.graphics.drawable.VectorDrawableCompat.create(VectorDrawableCompat.java:408)

这是我正在运行的代码:

VectorDrawableCompat vector = VectorDrawableCompat.create(getResources(), R.drawable.vector_name, null);

我的gradle文件有这行vectorDrawables.useSupportLibrary = true,就像我说的,所有其他矢量工作正常,但我主要使用它们使用AppCompatImageView

编辑:我应该提到我在库模块中这样做。

android android-support-library android-design-library android-vectordrawable
1个回答
0
投票

您需要在defaultConfig文件中的build.gradle块中添加此行:

vectorDrawables.useSupportLibrary = true

这将在运行时生成低于21的API的png,并且您不会收到错误,因为找不到它们。

© www.soinside.com 2019 - 2024. All rights reserved.