使用矢量 xml 作为可绘制 API 16 时的 Android ResourceNotFound

战神91

嗨,我尝试在我的应用程序中使用 xml vecotr 作为可绘制对象,并且在 API 25 中一切正常,但是当我在 API 16 上尝试时,出现此错误。仅当我尝试以编程方式加载矢量时才会收到错误,当我在布局中将其用作 ImageView 背景时,我没有收到错误。

java.lang.RuntimeException: Unable to start activity ComponentInfo{.....Editor}: android.content.res.Resources$NotFoundException: File res/drawable/chevron_left.xml from drawable resource ID #0x7f02005c
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
                                                                       at android.app.ActivityThread.access$600(ActivityThread.java:130)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                       at android.os.Looper.loop(Looper.java:137)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                                       at java.lang.reflect.Method.invoke(Method.java:511)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                       at dalvik.system.NativeStart.main(Native Method)
                                                                    Caused by: android.content.res.Resources$NotFoundException: File res/drawable/chevron_left.xml from drawable resource ID #0x7f02005c
                                                                       at android.content.res.Resources.loadDrawable(Resources.java:1923)
                                                                       at android.content.res.Resources.getDrawable(Resources.java:659)
                                                                       at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:374)
                                                                       at com...........Editor.onCreate(Editor.java:84)
                                                                       at android.app.Activity.performCreate(Activity.java:5008)
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                       at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                       at android.os.Looper.loop(Looper.java:137) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                       at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                       at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                       at dalvik.system.NativeStart.main(Native Method) 
                                                                    Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag vector
                                                                       at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:877)
                                                                       at android.graphics.drawable.Drawable.createFromXml(Drawable.java:818)
                                                                       at android.content.res.Resources.loadDrawable(Resources.java:1920)
                                                                       at android.content.res.Resources.getDrawable(Resources.java:659) 
                                                                       at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:374) 
                                                                       at com...........Editor.onCreate(Editor.java:84) 
                                                                       at android.app.Activity.performCreate(Activity.java:5008) 
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                                       at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                       at android.os.Looper.loop(Looper.java:137) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                                       at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                       at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                       at dalvik.system.NativeStart.main(Native Method) 

在 Editor.java(扩展 AppCompatActivity)中,我尝试了这两个(都没有工作):

    Drawable upArrow=getResources().getDrawable(R.drawable.chevron_left);
    Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.chevron_left).getCurrent();

矢量 chevron_left.xml:

<!-- drawable/chevron_left.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="42dp"
    android:width="42dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path android:fillColor="#fff" android:pathData="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" />
</vector>

摇篮:

defaultConfig {
    applicationId "com....."
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true
}

compile 'com.android.support:support-v4:25.3.1'
compile 'com.android.support:support-vector-drawable:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
凯拉什·达比

只需对 vectorDrawables.useSupportLibrary 应用 false 即可。像这样:-

vectorDrawables.useSupportLibrary = false

原因是 Vector drawable 不适用于棒棒糖下面的 api。它存在一些问题。但是您可以声明 vector drawable & 并且可以使用以下棒棒糖版本但您必须将 useSupportLibrary 设置为 false 以便 android studio 将为您创建 png 文件:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android API 16及更高版本上的“层列表”中的矢量可绘制对象

如何在Android API下21中使用矢量可绘制对象?

如何在Android中使用XML作为可绘制对象来创建自定义形状?

将Android矢量可绘制XML转换为SVG

使用Android fillType = evenOdd绘制的可绘制矢量

Android镜像矢量可绘制

Android的简单矢量可绘制

在LinearLayout上添加可绘制背景时,API 16 Phone上的应用程序崩溃

将多彩多姿的SVG渐变可绘制对象转换为Android xml矢量可绘制对象

不同屏幕分辨率的矢量xml可绘制文件的Android应用布局问题

Android - 在支持最低 API 级别 20 或更低级别的应用程序中使用矢量可绘制对象有什么优势?

使用 Graph API 在日历中创建事件返回“ResourceNotFound”

Android:矢量可绘制不重复

在API <21上更新build.gradle之后,停止使用矢量可绘制项目工作

如何将Android XML矢量可绘制对象导出为另一种格式?

使用多个路径标签从字符串创建可绘制的矢量(Android)

Android:API 16将矩形的轮廓绘制为实心矩形

android:fillType =“ evenOdd”在api 23中不起作用-矢量可绘制任何替代解决方案?

当可绘制资源是矢量可绘制对象时,如何通过TypedArray获取可绘制对象?

xml中的Android可绘制形状

在画布上绘制时的XML可绘制比例

单击箭头时可旋转绘制的动画矢量

针对低于API 19的矢量可绘制的RTL支持

在Android中调用API时出现XML错误

Android:如何在可绘制的xml中使用当前主题的颜色?

如何在Android上使用可绘制的xml文件修复背景图像?

ResourceNotFound-在混合Exchange安装程序中使用Microsoft Graph API到达本地邮箱

Android Studio:使用API级别16进行编译

无法使用API级别16注册Android令牌