2017-05-17 1 views
1

Hallo Im Versuch, ein Xml Vecotr als Zeichen in meiner app und alles funktioniert gut in API 25, aber wenn ich es auf API 16 versuche ich bekomme diesen Fehler. Ich bekomme den Fehler nur, wenn ich versuche, den Vektor programmgesteuert zu laden, wenn ich es im Layout als ImageView-Hintergrund verwende, bekomme ich den Fehler nicht.Android ResourceNotFound bei der Verwendung von Vektor Xml als Zeichen API 16

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)  

und im Editor.java (erweitert AppCompatActivity) ich diese zwei versuchte (beide nicht gearbeitet haben):

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

Vektor 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> 

Gradle:

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' 

Antwort

2

Nur fals anwenden e auf vectorDrawables.useSupportLibrary auf false. Gefällt mir: -

Der Grund ist Vector Drawable funktionieren nicht für Apis unter Lollipop. Es gibt einige Probleme damit. Aber Sie können Vektor ziehbaren & deklarieren und können unter Lollipop Version verwenden, aber Sie müssen UseSupportLibrary zu false so android Studio wird die Png-Datei für Sie erstellen :)

+1

Dank es funktioniert – Ares91

Verwandte Themen