2017-10-20 6 views
21

मेरा ऐप Android Studio 3 RC1 (Gradle 4, एंड्रॉइड Gradle प्लगइन 3 आरसी 2) को अपडेट करने के बाद क्रैश हो रहा है।java.lang.UnsupportedOperationException: इंडेक्स 5 पर रंग को कन्वर्ट नहीं कर सकता: टाइप = 0x5

This is the error I am having: 
java.lang.RuntimeException: Unable to start activity ComponentInfo{*****}: 
android.view.InflateException: Binary XML file line #0: Binary XML file line #0: 
Error inflating class com.viewpagerindicator.CirclePageIndicator 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
     at android.app.ActivityThread.-wrap11(Unknown Source:0) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
     at android.os.Handler.dispatchMessage(Handler.java:105) 
     at android.os.Looper.loop(Looper.java:164) 
     at android.app.ActivityThread.main(ActivityThread.java:6541) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
    Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.viewpagerindicator.CirclePageIndicator 
    Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.viewpagerindicator.CirclePageIndicator 
    Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Constructor.newInstance0(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:647) 
     at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211) 
     at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20) 
     at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302) 
     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:186) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:866) 
     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
     at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
     at com.raimbekov.android.sajde.zikr.ZikrActivity.onCreate(ZikrActivity.java:195) 
     at android.app.Activity.performCreate(Activity.java:6975) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
     at android.app.ActivityThread.-wrap11(Unknown Source:0) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
     at android.os.Handler.dispatchMessage(Handler.java:105) 
     at android.os.Looper.loop(Looper.java:164) 
     at android.app.ActivityThread.main(ActivityThread.java:6541) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
    Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 5 to color: type=0x5 
    10-20 10:48:09.562 6156-6156 E/AndroidRuntime:  at android.content.res.TypedArray.getColor(TypedArray.java:473) 
     at com.viewpagerindicator.CirclePageIndicator.<init>(CirclePageIndicator.java:96) 
     at com.viewpagerindicator.CirclePageIndicator.<init>(CirclePageIndicator.java:72) 
      ... 34 more 

मुझे अद्यतन से पहले यह समस्या नहीं थी (Android Studio 2 पर)। यह github पर भी वर्णित है, लेकिन कोई जवाब नहीं है।

+0

अपनी लेआउट फ़ाइल पोस्ट करें? – Neeraj

+1

यह कोड (CirclePageIndicator) को 5 साल के लिए अपडेट नहीं किया गया है। एपीआई <21 पर आप एक्सएमएल ड्रायबल में रंगों के लिए attrs का उपयोग नहीं कर सकते हैं। तो एकमात्र तरीका एक रंग संसाधन (@ रंग/YOURS_COLOR) के संदर्भ का उपयोग करना है या # आरजीबी प्रारूप का उपयोग करना है। आपको शायद बदलना होगा: जेकवार्टन/व्यूपेगर इंडिकेटर लाइब्रेरी। –

+0

@ जोन गुडविन धन्यवाद। मैं attrs का उपयोग नहीं कर रहा हूँ। मेरे रंग आरजीबी के रूप में शैलियों में परिभाषित हैं और यह पूरी तरह से एपीआई 15 पर काम करता है। –

उत्तर

20

बदलें
compile 'com.viewpagerindicator:library:[email protected]'


compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'

को यह काम करेंगे। पुस्तकालय के साथ एक समस्या है।

+0

एक आकर्षण की तरह काम करता है - धन्यवाद! – dipdipdip

+0

यह वास्तव में इसे कैसे हल करता है? मेरे मामले में काम नहीं किया लेकिन मुझे आश्चर्य है कि वास्तव में यह क्या अंतर बनाता है। –

+0

यह "compile 'com.viewpagerindicator के साथ एक समस्या है: लाइब्रेरी: [email protected]' 'लाइब्रेरी ... यह रंगों की एक सरणी पढ़ती है, और कोई विशेष अनुक्रमणिका नहीं मिल सका ... यह बग" संकलित करें com.github.JakeWharton: ViewPagerIndicator: 2.4.1 '"लाइब्रेरी ... आप किस लाइब्रेरी का उपयोग कर रहे हैं ?? –

5

compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'jitpack.io का उपयोग एंड्रॉइड ग्रेडल प्लगइन 3.0 के साथ मेरे लिए काम नहीं किया।

इसके बजाय मुझे प्रोग्रामेटिक रूप से सभी दृश्य विशेषताओं को सेट करना पड़ा जो मैंने पहले cpi: (या app:) विशेषताओं के साथ एक्सएमएल लेआउट में सेट किया था।

उदाहरण

<com.viewpagerindicator.CirclePageIndicator 
    cpi:fillColor="@color/azure" 
    cpi:pageColor="@color/white" 
    cpi:radius="4dp" 
    cpi:snap="true" 
    cpi:strokeWidth="0dp" /> 

मैं सभी cpi: गुण हटा दिया और उन सब को प्रोग्राम के सेट:

circlePageIndicator.setFillColor(ContextCompat.getColor(getContext(), R.color.azure)); 
circlePageIndicator.setPageColor(ContextCompat.getColor(getContext(), R.color.white)); 
circlePageIndicator.setRadius((int) (4 * Resources.getSystem().getDisplayMetrics().density)); 
circlePageIndicator.setSnap(true); 
circlePageIndicator.setStrokeWidth(0); 
2

मैं jitpack.io सबसे आसान तरीका पाया:

allprojects { 
    repositories { 
     maven { url "https://jitpack.io" } 
    } 
} 

और उसके बाद :

dependencies { 
    implementation ('com.github.JakeWharton:ViewPagerIndicator:2.4.1'){ 
    exclude module: 'support-v4' 
    } 
} 

बस ध्यान दें कि समर्थन V4 पुस्तकालय के 2 संस्करण होने पर इसे तोड़ दिया जब तक मैं उनमें से एक को बाहर रखा गया

2

मेरे परियोजना एंड्रॉयड Gradle प्लगइन 3.0 और उपयोग करता compileSdk 27. मैं इसके साथ काम करने के लिए सक्षम नहीं था इस धागे में सुझाए गए समाधान (compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1') का उपयोग करके यह सेटअप।

यह ViewPager#removeOnPageChangeListener जैसी विधियों के बारे में शिकायत कर रहा था जो समर्थन पुस्तकालय के संस्करण 24 में जोड़े गए हैं। मुझे लगता है कि इस तथ्य के साथ यह करना है कि लाइब्रेरी में एंड्रॉइड-सपोर्ट-v4.jar सीधे बेक्ड है।

मैं अपनी सभी एक्सएमएल फाइलों से गुजरना नहीं चाहता था और प्रोग्राम को प्रोग्रामेटिक रूप से सेट नहीं करना चाहता था इसलिए मैंने निर्माण समाप्त कर दिया एक कांटा जो लाइब्रेरी बनाने के लिए ग्रेडल का उपयोग करता है और अधिक आधुनिक संस्करणों के लिए compdSdk/minSdk/support-v4 संकलित करता है।

आप परियोजना यहाँ https://github.com/splatte/ViewPagerIndicator

अपनी परियोजना में इसका इस्तेमाल करने के लिए प्राप्त कर सकते हैं, तो जैसे jitpack से इसे पाने:

allprojects { 
    repositories { 
     maven { url "https://jitpack.io" } 
    } 
} 

और उसके बाद:

dependencies { 
    implementation 'com.github.splatte:ViewPagerIndicator:3.0.0' 
} 

(होना चाहिए एक और प्रोजेक्ट जो 4.300 फोर्क के समुद्र में करता है जो ViewPagerIndicator है, लेकिन मुझे नहीं पता था कि इसे कैसे ढूंढें।)

संबंधित मुद्दे