应用程序停止使用appcompat.v7中的向量Drawables

时间:2017-03-02 20:56:30

标签: java android android-studio android-appcompat

我无法在真实设备上运行我的活动(APi 19) 我使用public class MainActivity extends Activity时没关系 但public class MainActivity extends AppCompatActivity它不会......

MainActivity:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

我的gardge.build:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "22.0.0"
    defaultConfig {
        applicationId "com.example.myapplication2"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
}

调试 - 控制台:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: de.cleefchat.myapplication2, PID: 9774
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{de.cleefchat.myapplication2/de.cleefchat.myapplication2.MainActivity}: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429)
                      at android.app.ActivityThread.access$800(ActivityThread.java:151)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342)
                      at android.os.Handler.dispatchMessage(Handler.java:110)
                      at android.os.Looper.loop(Looper.java:193)
                      at android.app.ActivityThread.main(ActivityThread.java:5333)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052
                      at android.content.res.Resources.loadDrawable(Resources.java:2170)
                      at android.content.res.Resources.getDrawable(Resources.java:710)
                      at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346)
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
                      at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:720)
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
                      at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77)
                      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
                      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
                      at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
                      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50)
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
                      at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
                      at de.cleefchat.myapplication2.MainActivity.onCreate(MainActivity.java:10)
                      at android.app.Activity.performCreate(Activity.java:5343)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
                      at android.os.Handler.dispatchMessage(Handler.java:110) 
                      at android.os.Looper.loop(Looper.java:193) 
                      at android.app.ActivityThread.main(ActivityThread.java:5333) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
                      at dalvik.system.NativeStart.main(Native Method) 
                   Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
                      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
                      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
                      at android.content.res.Resources.loadDrawable(Resources.java:2166)
                      at android.content.res.Resources.getDrawable(Resources.java:710) 
                      at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:346) 
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197) 
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185) 
                      at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:720) 
                      at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190) 
                      at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77) 
                      at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127) 
                      at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147) 
                      at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27) 
                      at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50) 
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201) 
                      at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181) 
                      at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521) 
                      at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71) 
                      at de.cleefchat.myapplication2.MainActivity.onCreate(MainActivity.java:10) 
                      at android.app.Activity.performCreate(Activity.java:5343) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2429) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1342) 
                      at android.os.Handler.dispatchMessage(Handler.java:110) 
                      at android.os.Looper.loop(Looper.java:193) 
                      at android.app.ActivityThread.main(ActivityThread.java:5333) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645) 
                      at dalvik.system.NativeStart.main(Native Method) 

4 个答案:

答案 0 :(得分:2)

在build.gradle上添加

 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 } 

对于库中的Vector Drawable支持,请参阅this

或者您也可以将buildToolsVersion更新为..

buildToolsVersion "24.0.1"

答案 1 :(得分:1)

只需更新你的buildToolsVersion ......

buildToolsVersion "24.0.1"

答案 2 :(得分:1)

我的建议是始终将构建gradle工具升级到最新版本。

在这种情况下,最低需要BuildToolVersion "24.0.1"

答案 3 :(得分:1)

Gradle有时会导致这种情况。尝试根据其版本编辑您的gradle:

Gradle Plugin 2.0 +

 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Gradle Plugin 1.5

 android {  
   defaultConfig {  
     // Stops the Gradle plugin's automatic rasterization of vectors
     generatedDensities = []  
  }  
  // This is handled for you by the 2.0+ Gradle Plugin  
  aaptOptions {  
    additionalParameters "--no-version-vectors"  
  }  
 }