【问题标题】:XmlPullParserException: invalid drawable tag vectorXmlPullParserException:无效的可绘制标签向量
【发布时间】:2016-04-03 12:14:20
【问题描述】:

我正在使用 NDK 支持并收到此错误:

分级:

分布:gradle-2.5-all

构建工具:gradle-experimental:0.2.1

XML:

    <vector android:height="24dp" android:viewportHeight="125.0"
android:viewportWidth="100.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M97.01,-2.98,-3C47.02,95.35"/>
</vector>

警告:

vector 需要 API 级别 21(当前最低为 13)或使用 Android Gradle 插件 1.4 或更高版本

例外:

  FATAL EXCEPTION: main
 android.content.res.Resources$NotFoundException: File res/drawable/accelerometer.xml from drawable resource ID #0x7f020045
 at android.content.res.Resources.loadDrawable(Resources.java:2842)
 at android.content.res.Resources.getDrawable(Resources.java:1521)

...
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
 at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:917)
 at android.graphics.drawable.Drawable.createFromXml(Drawable.java:858)

【问题讨论】:

标签: android vector gradle android-ndk compatibility


【解决方案1】:

如果它不适用于 Pre-Lollipop,请将其添加到您的活动中

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

【讨论】:

    【解决方案2】:

    我发现了一个相当有趣的解决方法。如果您将背景设置为包含 xml 可绘制对象的可绘制文件,那么异常/崩溃就会消失。

    所以创建一个具有以下内容的可绘制文件:

    <selector
         xmlns:android="http://schemas.android.com/apk/res/android">
    <item
         android:drawable="@drawable/your_image_here.xml" />
    </selector>
    

    并将这个可绘制文件的名称作为背景...

    【讨论】:

      【解决方案3】:

      在棒棒糖之前的设备上,您需要使用 VectorDrawableCompat 从资源中获取矢量。

       someVectorDrawable = VectorDrawableCompat.create(context.getResources(), R.drawable.[some res id], null);
      

      然后你可以设置你的 ImageView 的背景。

      【讨论】:

      • 在按钮上使用 drawableLeft 时,api 19 的 buildToolsVersion "25.0.3" 出现此错误。这种解决方法是唯一对我有用的方法。
      • 这拯救了我的一天!唯一的解决方法。我已经尝试使用构建工具 26.0.0 并且遇到了同样的问题。
      • 知道当通过 xml 包含菜单项 (android:icon=@drawable/icon_name) 时如何解决这个问题?
      • @serv-inc 改用app:srcCompat=@drawable/icon_name
      • 这对我有用。经过很长时间在互联网上寻找一些解决方案......这对我帮助很大。谢谢!
      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2020-10-19
      相关资源
      最近更新 更多