2017-05-17 75 views
1

嗨我試圖在我的應用程序中使用xml vecotr作爲drawable,並且在API 25中一切正常,但是當我在API 16上嘗試時,出現此錯誤。我只在我嘗試以編程方式加載矢量時出現錯誤,當我在佈局中將它用作ImageView背景時,我沒有收到錯誤。當使用vector xml作爲可繪製的API時Android ResourceNotFound 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)  

,並在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' 

回答

2

Just apply fals將vectorDrawables.useSupportLibrary設置爲false。像這樣: -

vectorDrawables.useSupportLibrary = false 

原因是矢量繪製不工作apis以下棒棒糖。 它有一些問題。但你可以聲明矢量繪製&,可以使用下面的棒棒糖版本,但你必須設置useSupportLibrary爲false,所以android studio會爲你創建png文件:)

+1

感謝它的工作 – Ares91

相關問題