Android vectorDrawables.useSupportLibrary = true正在停止应用程序

如果我在gradle中使用vectorDrawables.useSupportLibrary = true ,那么不幸的是运行它的应用程序停止。 如果我删除vectorDrawables.useSupportLibrary = true该应用程序的作品。

我的gradle:

apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { vectorDrawables.useSupportLibrary = true applicationId "com.helikanon.firstapp" minSdkVersion 15 targetSdkVersion 25 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:appcompat-v7:25.1.0' compile 'com.android.support:design:25.1.0' compile 'com.jakewharton:butterknife:8.4.0' compile 'com.android.support:support-v4:25.1.0' testCompile 'junit:junit:4.12' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' compile 'uk.co.chrisjenx:calligraphy:2.2.0' compile 'com.google.android.gms:play-services-ads:10.0.1' } 

错误:

 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.helikanon.firstapp/com.helikanon.firstapp.activities.MainActivity}: android.view.InflateException: Binary XML file line #62: Error inflating class Button 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.view.InflateException: Binary XML file line #62: Error inflating class Button at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) . . . 

应用程序崩溃时,我使用Api 16和Api 19,但是当我使用Api 23它的工作原理。

Solutions Collecting From Web of "Android vectorDrawables.useSupportLibrary = true正在停止应用程序"

在棒棒糖之前,除ImageView以外的任何其他视图都不能使用Vector Drawables

请参阅这个SO回答由谷歌开发者倡导。

对于AppCompat用户,我们已经决定删除​​允许您使用棒棒糖前设备资源中的vector绘图的function,因为23.2.0 / 23.2.1 [ https://code.google。 com / p / android / issues / detail?id = 205236 , https://code.google.com/p/android/issues/detail ?id=204708 ]。 使用app:srcCompatsetImageResource()继续工作。

如果你想使用vectorDrawables预棒棒糖,使用可以通过编程将其转换为可绘制的设置。

 Drawable drawable; if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { drawable = context.getResources().getDrawable(drawableResId, context.getTheme()); } else { drawable = VectorDrawableCompat.create(context.getResources(), drawableResId, context.getTheme()); } button.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);