2016-08-01 8 views
7

पर ड्रॉबल संसाधन आईडी से ColorStateList नहीं ढूंढ सकता है मुझे यह त्रुटि मेरे क्रैशलिटिक्स में मिली है, और ऐसा लगता है कि यह केवल Android Nougat के पूर्वावलोकन संस्करण वाले उपयोगकर्ताओं के लिए क्रैश हो रहा है।केवल एंड्रॉइड नौगेट

ऐप स्टार्टअप (मुख्य गतिविधि) पर क्रैश हो जाता है।

स्टैकट्रेस

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.domain/com.my.domain.activities.MainActivity}: android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
    at android.app.ActivityThread.-wrap12(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6077) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057 
    at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:840) 
    at android.content.res.Resources.loadColorStateList(Resources.java:998) 
    at android.content.res.TypedArray.getColor(TypedArray.java:447) 
    at android.app.Activity.onApplyThemeResource(Activity.java:4039) 
    at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:198) 
    at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java:140) 
    at android.app.Activity.setTheme(Activity.java:4009) 
    at android.support.v7.app.AppCompatActivity.setTheme(AppCompatActivity.java:90) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2592) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
    at android.app.ActivityThread.-wrap12(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6077) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

यह Android नूगा तरह लग रहा है नहीं रह गया है कि मैं अपने अनुप्रयोग में उपयोग कर रहा हूँ प्रणाली रंग के कुछ प्रकार का समर्थन करता है? लेकिन मुझे नहीं पता कि इसे ठीक कैसे किया जाए।

संपादित

तो मैं अपने आर फ़ाइल में आईडी 0x7f020057 के साथ संसाधन मिल गया है और यह यह है:

सार्वजनिक स्थिर अंतिम पूर्णांक background_splash_gradient = 0x7f020057;

मैं कहाँ मैं इसे उपयोग कर रहा हूँ की जाँच की और यहाँ यह है:

<style name="StartingWindowTheme" parent="AppTheme"> 
    <item name="android:windowBackground">@drawable/background_splash_gradient</item> 
    <item name="android:colorBackground">@drawable/background_splash_gradient</item> 
</style> 

और यह background_splash_gradiend xml फ़ाइल है:

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 

<gradient 
    android:angle="135" 
    android:endColor="#00d49e" 
    android:startColor="#00bcd4"/> 

</shape> 

मैं अभी भी यह क्यों पता नहीं है नौगेट पर मुद्दे पैदा कर रहा है। मैंने "StartWindowTheme" शैली को हटाने का प्रयास किया है और ऐप अब काम करता है, यह अब क्रैश नहीं होता है। लेकिन मुझे उससे बेहतर सुधार की जरूरत है।

संपादित 2

तो मैं इस लाइन को दूर करने की कोशिश की:

<item name="android:colorBackground">@drawable/background_splash_gradient</item> 

और यह काम करता है। ऐसा लगता है कि android:colorBackground समस्या है।

अस्थायी ठीक

के बाद से समस्या रेखा से ऊपर उल्लेख किया है, केवल नूगा पर, मैं एक values-v24 फ़ोल्डर बनाया और वहाँ लाइन निकाल दिया है। ऐप अब नौगेट पर काम करता है, लेकिन मैं एक बेहतर समाधान की सराहना करता हूं।

+0

आप 'android.R.color' से कुछ भी प्रयोग करते हैं? – EpicPandaForce

+0

हम्म, मैं वास्तव में नहीं यकीन है कि, मैं सिर्फ "android.R.color" के लिए एक वैश्विक खोज किया था और यह कुछ भी नहीं मिला। मान लीजिए कि यह मुद्दा है, समाधान क्या होगा? – Guy

+0

असल में, हाँ, यह है कि मैं एक्सएमएल में यह उपयोग कर रहा हूँ लगता है। मैं "@android: रंग/पारदर्शी" – Guy

उत्तर

2

मुझे पता चला कि समस्या कहां थी और इसे कैसे ठीक किया जाए। यहां समाधान है, मैं इसे सरल रखूंगा।

इस लाइन समस्या पैदा कर रहा था:

<item name="android:colorBackground">@drawable/background_splash_gradient</item> 

बाहर कर देता है आप XML में एक colorBackground के रूप में स्थापित drawable नहीं कर सकते हैं, तो यह इस लाइन हटाने के बाद काम करता है।

कारण यह केवल नौगेट पर दुर्घटनाग्रस्त है क्योंकि यह पिछले संस्करणों में संभव था।

0

यह पता चला है कि according with the Android issue tracker, यह इरादा के रूप में कार्य कर रहा है।

android:colorBackground एक रंग एक drawable नहीं की उम्मीद है।

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