16
बढ़ा-चढ़ाकर

मैं API19 से मेरे एप्लिकेशन को उन्नत करने के API21 कोउन्नयन 21 SDK के लिए - त्रुटि वर्ग android.support.v7.internal.widget.ActionBarContainer

मुख्य परिवर्तन मैं Gradle गुण में किए गए हैं कोशिश कर रहा हूँ :

compileSdkVersion 21 
buildToolsVersion "21.0.2" 

minSdkVersion 8 
targetSdkVersion 21 


compile 'com.android.support:appcompat-v7:21.0.0' 

एप्लिकेशन ठीक बनाता है, लेकिन मैं हमेशा निम्न त्रुटि मिलती है: (एसी के साथ

10-22 23:10:38.867 7972-8058/com.example.android.demo E/ACRA? com.example.android.demo fatal error : Unable to start activity ComponentInfo{com.example.android.demo/com.example.android.demo.MainActivity2}: android.view.InflateException: Binary XML file line #27: Error inflating class android.support.v7.internal.widget.ActionBarContainer 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.demo/com.example.android.demo.MainActivity2}: android.view.InflateException: Binary XML file line #27: Error inflating class android.support.v7.internal.widget.ActionBarContainer 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: android.view.InflateException: Binary XML file line #27: Error inflating class android.support.v7.internal.widget.ActionBarContainer 
     at android.view.LayoutInflater.createView(LayoutInflater.java:633) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:273) 
     at android.support.v7.app.ActionBarActivityDelegateBase.createSupportActionBar(ActionBarActivityDelegateBase.java:155) 
     at android.support.v7.app.ActionBarActivityDelegate.getSupportActionBar(ActionBarActivityDelegate.java:123) 
     at android.support.v7.app.ActionBarActivity.getSupportActionBar(ActionBarActivity.java:73) 
     at com.example.android.demo.MainActivity2.onCreate(MainActivity2.java:243) 
     at android.app.Activity.performCreate(Activity.java:5933) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Constructor.newInstance(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:273) 
     at android.support.v7.app.ActionBarActivityDelegateBase.createSupportActionBar(ActionBarActivityDelegateBase.java:155) 
     at android.support.v7.app.ActionBarActivityDelegate.getSupportActionBar(ActionBarActivityDelegate.java:123) 
     at android.support.v7.app.ActionBarActivity.getSupportActionBar(ActionBarActivity.java:73) 
     at com.example.android.demo.MainActivity2.onCreate(MainActivity2.java:243) 
     at android.app.Activity.performCreate(Activity.java:5933) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 11 
     at android.content.res.TypedArray.getDrawable(TypedArray.java:747) 
     at android.support.v7.internal.widget.ActionBarContainer.<init>(ActionBarContainer.java:66) 
     at java.lang.reflect.Constructor.newInstance(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:273) 
     at android.support.v7.app.ActionBarActivityDelegateBase.createSupportActionBar(ActionBarActivityDelegateBase.java:155) 
     at android.support.v7.app.ActionBarActivityDelegate.getSupportActionBar(ActionBarActivityDelegate.java:123) 
     at android.support.v7.app.ActionBarActivity.getSupportActionBar(ActionBarActivity.java:73) 
     at com.example.android.demo.MainActivity2.onCreate(MainActivity2.java:243) 
     at android.app.Activity.performCreate(Activity.java:5933) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

मैं संस्करण 4 (जो मैं पहले उपयोग कर रहा था) की कोशिश की है और v7 ActionBarDrawerToggle कन्स्ट्रक्टर के लिए नए प्रारूप में हेंज) लेकिन हमेशा एक ही त्रुटि प्राप्त करें। ऐप थीम थीम का एक अभिभावक है। AppCompat.Light.DarkActionBar

मुझे सच में यकीन नहीं है कि क्या देखना है।

उत्तर

17

?attr/selectableItemBackground का उपयोग करने की कोशिश करते समय मुझे एक ही समस्या थी और इंटरनेट पर चारों ओर खोदने वाले कुछ जवाब और मुझे पता चला कि मेरे लिए क्या गलत था (और शायद आप भी)।

this answer से मैंने सीखा कि "? मार्क वर्तमान विषय में शैली को संदर्भित करने के लिए प्रयोग किया जाता है।" जिसका अर्थ है कि जब आप उपयोग करते हैं? Attr/आप वर्तमान विषय में कुछ देखें।

मैंने देखा है कि मैं इस दुर्घटना केवल मिला जब आवेदन संदर्भ का उपयोग करते हुए और नहीं जब गतिविधि संदर्भ का उपयोग कर बढ़ा-चढ़ाकर। This blog post बताता है कि "संदर्भ क्षमताओं" अनुभाग में क्या हो रहा है।

...[When using the application context] inflation will be done with the default theme for the system on which you are running, not what’s defined in your application.

इसका मतलब यह है कि? अगर वे वर्तमान थीम को संदर्भित करते हैं, तो आप काम नहीं करेंगे क्योंकि डिफ़ॉल्ट सिस्टम थीम आप नहीं बढ़ रहे हैं।

तो? Attr/ठीक है अगर आप गतिविधि संदर्भ के बजाय आवेदन संदर्भ का उपयोग कर को बढ़ाने के लिए सुनिश्चित करें कि काम करता है।

6

मेरे लिए मुद्दा जब मूल्यों के लिए? Attr/प्रारूप का उपयोग कर लेआउट फाइलों में लग रहा था। मुझे यकीन नहीं है कि यह विषय संबंधित है या नहीं। मैंने चीजों को आगे बढ़ाने के लिए इन सबको बाहर निकाला और फिर शैलियों को वापस जोड़ा।

8

मुझे इसी तरह की समस्या थी, मैं AppCompat.v21 का उपयोग कर रहा हूं और एंड्रॉइड 5.0 का समर्थन कर रहा हूं।

मेरे लेआउट का उपयोग करता? Attr/[ATTRIBUTE_NAME] कुछ मूल्यों के लिए और मैं गतिविधि संदर्भ का उपयोग करें।

मैंने इसे बदल दिया है? एंड्रॉइड: attr/[attribute_name] और अब मेरे विचार एंड्रॉइड 5.0 चलाने वाले डिवाइसों पर बस ठीक हैं।

1

शैली का नाम = "AppTheme" parent = "base.V23.Theme.AppCompat" style.xml में मेरे ऐप के लिए काम किया।

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