11

duruyorsa vectorDrawables.useSupportLibrary = true grapt uygulamasında kullanıyorum, ne yazık ki uygulamayı durdurdu. Uygulamanın çalıştığı vectorDrawables.useSupportLibrary = true'u kaldırırsam çalışır.Android vectorDrawables.useSupportLibrary = true, uygulama

Benim 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' 
} 

hataları:

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) 
. 
. 
. 

Ben Api 16 ve Api 19 kullanın ama Api 23 kullandığınızda çalışır iken uygulama kilitleniyor.

+0

Bu makaleye bir bakın - http://chris.banes.me/2016/02/25/appcompat-vector/. Ben de bu problemi yaşadım. –

+0

Tam olarak bu makalede yaptım ama hala hata alıyorum – Alexander

+0

Ben çökme nedenini bilmek istediğini düşündüm. Her neyse, kullandığınız not sürümü nedir? –

cevap

16

Vector Drawables, lolipop içinde ImageView dışındaki diğer görünümlerde kullanamazsınız.

Lütfen google geliştirici advocate tarafından bu SO Answer bakın.

AppCompat kullanıcıları için

, biz nedeniyle sürümü 23.2.0/23.2.1 [https://code.google.com/p/android/issues/detail?id=205236 yılında uygulamaya bulunan konulara öncesi Lollipop cihazlarda kaynaklardan vektör drawables kullanmasına izin işlevselliği kaldırma kararı aldık https://code.google.com/p/android/issues/detail?id=204708]. app:srcCompat ve setImageResource() kullanımı çalışmaya devam ediyor. Eğer Vektör Drawables öncesi lolipop kullanmak istiyorsanız

, kullanımı çekilebilir haline dönüştürerek programlama ayarlayabilirsiniz.

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);