11

यदि मैं वेक्टर ड्रावेबल्स.यूजस्पोर्ट लाइब्रेरी = सही का उपयोग करता हूं तो दुर्भाग्यवश दुर्भाग्यवश ऐप चलाएं। यदि मैं vectorDrawables.useSupportLibrary = true ऐप काम करता हूं तो हटा देता हूं।एंड्रॉइड वेक्टर Drawables.useSupportLibrary = सत्य ऐप को रोक रहा है

मेरे 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) 
. 
. 
. 

एप्लिकेशन जब मैं एपीआई 16 और एपीआई 19 का उपयोग, लेकिन यह काम करता है जब मैं एपीआई 23 का उपयोग क्रैश हो रहा है।

+0

इस आलेख पर एक नज़र डालें - http://chris.banes.me/2016/02/25/appcompat-vector/। मुझे यह समस्या भी हुई। –

+0

मैंने वास्तव में इस आलेख में किया था लेकिन फिर भी मुझे त्रुटि मिल रही है – Alexander

+0

मैंने सोचा कि आप दुर्घटना का कारण जानना चाहते हैं। वैसे भी, आप जिस ग्रेड संस्करण का उपयोग कर रहे हैं वह क्या है? –

उत्तर

16

आप प्री-लॉलीपॉप में ImageView को छोड़कर वेक्टर ड्रायबल्स का उपयोग किसी अन्य दृश्य में नहीं कर सकते हैं।

कृपया Google डेवलपर वकील द्वारा यह SO Answer देखें।

AppCompat उपयोगकर्ताओं के लिए, हम संस्करण 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:srcCompat और setImageResource() का उपयोग करना जारी है।

आप वेक्टर ड्रॉएबल पूर्व लॉलीपॉप उपयोग करना चाहते हैं, का उपयोग करें यह प्रोग्राम के यह एक drawable में परिवर्तित करने से सेट कर सकते हैं।

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); 
संबंधित मुद्दे