XmlPullParserException:无效的可绘制标签向量
XmlPullParserException: invalid drawable tag vector
我正在使用 NDK 支持并收到此错误:
Gradle:
分布: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 requires API level 21 (current min is 13) or building with
Android Gradle plugin 1.4 or higher
异常:
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)
在 Lollipop 之前的设备上,您需要使用 VectorDrawableCompat 从资源中获取矢量。
someVectorDrawable = VectorDrawableCompat.create(context.getResources(), R.drawable.[some res id], null);
然后你可以设置你的ImageView的背景。
我发现了一个相当有趣的解决方法。如果将背景设置为包含 xml 可绘制对象的可绘制文件,则 exception/crash 会消失。
因此创建一个包含以下内容的可绘制文件:
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/your_image_here.xml" />
</selector>
并将此可绘制文件的名称作为背景...
如果它不适用于 Pre-Lollipop,请将其添加到您的 Activity
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
我正在使用 NDK 支持并收到此错误:
Gradle:
分布: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 requires API level 21 (current min is 13) or building with Android Gradle plugin 1.4 or higher
异常:
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)
在 Lollipop 之前的设备上,您需要使用 VectorDrawableCompat 从资源中获取矢量。
someVectorDrawable = VectorDrawableCompat.create(context.getResources(), R.drawable.[some res id], null);
然后你可以设置你的ImageView的背景。
我发现了一个相当有趣的解决方法。如果将背景设置为包含 xml 可绘制对象的可绘制文件,则 exception/crash 会消失。
因此创建一个包含以下内容的可绘制文件:
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/your_image_here.xml" />
</selector>
并将此可绘制文件的名称作为背景...
如果它不适用于 Pre-Lollipop,请将其添加到您的 Activity
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}