java.lang.IllegalArgumentException: AppCompat वर्तमान थीम सुविधाओं का समर्थन नहीं करता है


109

मैंने एक्लिप्स से एंड्रॉइड स्टूडियो तक एक परियोजना को स्थानांतरित करने की कोशिश की। अंत में मैं इसे चलाने में सक्षम हूं, लेकिन एक निश्चित बिंदु पर मुझे यह अपवाद मिला, और मुझे इस बारे में Google में कुछ भी नहीं मिला:

04-22 00:08:15.484    9891-9891/hu.illion.kwindoo E/AndroidRuntime FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.illion.kwindoo/hu.illion.kwindoo.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
    ...    
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
    at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
    at hu.illion.kwindoo.activity.MainActivity.onCreate(MainActivity.java:73)
    at android.app.Activity.performCreate(Activity.java:5047)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
    ...

73. मेनऐक्टिविटी की लाइन है:

setContentView(R.layout.activity_main);

यदि आप कर सकते हैं तो कृपया मुझे सलाह दें।


यह कभी नहीं देखा गया लेकिन शायद आप R.layout.activity_main में एक ऐसी सुविधा का उपयोग कर रहे हैं जिसके लिए Android API के भिन्न संस्करण की आवश्यकता है? - हालांकि एंड्रॉइड स्टूडियो आपको उन चीजों के बारे में बताना पसंद करता है ... Goodluck
Gready

अपनी थीम पोस्ट करें। xml या style.xml और activity_main.xml
Charaf Eddine Mechalikh

क्या आप अपनी .gradle फ़ाइलें यहाँ भी रख सकते हैं? आप शायद एक पुराने appcompat पर निर्भर करते हैं?
रफमूले

जवाबों:


233

@ sbaar के जवाब के लिए विकल्प,

रखने के windowActionBarलिए falseऔर के windowNoTitleरूप में अच्छी तरह से जोड़ने और इसे करने के लिए सेट करेंtrue

अर्थात

   <item name="windowActionBar">false</item>
   <item name="windowNoTitle">true</item>

4
मुझे आज के नवीनतम एपकॉम (22.1) में अपडेट करने के बाद अपने ऐप पर ऐसा करना पड़ा। यह सब मैंने बदल दिया है और मेरा ऐप अब फिर से काम करता है।
स्टीलबाइट्स

4
यह अजीब है, लेकिन
एक्शनबेरक्टिविटी के

5
यह जवाब मेरे काम नहीं आया। केवल @sbaar जवाब ने काम किया। आपकी थीम को इनहेरिट करना चाहिए: Theme.AppCompat.NoActionBar इसके अलावा: <आइटम का नाम = "windowActionBar"> झूठा </ आइटम> और <आइटम का नाम = "windowNoTitle"> सच / 'आइटम'
blueware

1
यह उन विषयों के लिए काम करता है, जिनकी NoActionBarशैली में कोई विकल्प नहीं है । मेरे उदाहरण में यह काम करता हैTheme.AppCompat.Light.Dialog
dobridog

1
यह जब Theme.AppComapt.NoActionBar से विरासत में मिला है। उत्तम!
तारिक

41

हटाना

<item name="windowActionBar">false</item>

अपने विषय से, फिर सुनिश्चित करें कि आप एक .NoActionBar थीम से विरासत में प्राप्त कर रहे हैं, फिर अपने टूलबार को सामान्य की तरह सेट करें।


1
और मुझे एक चीज़ क्यों संशोधित करनी चाहिए? इस परियोजना को महीनों के लिए ग्रहण के साथ अच्छी तरह से सत्यापित किया गया था।
एडम वरघी

3
क्योंकि कुछ घंटों पहले Google ने अपने समर्थन पुस्तकालय का संस्करण 22.1 जारी किया था, जिससे आपकी परियोजना में यह समस्या उत्पन्न हुई (और साथ ही मेरी भी)। यह केवल एक संयोग है, एंड्रॉइड स्टूडियो के प्रवास के कारण नहीं।
jmart

3
मेरे लिए, .NoActionBar से विषय को विरासत में मिला, कोई भी तत्व हटाने की आवश्यकता नहीं थी।
सेर्गेई अल्दखोव

30

सुनिश्चित करें कि आपका विषय बच्चे से है Theme.AppCompat.NoActionBar, तो इसमें styles.xml:

<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="windowNoTitle">true</item>
        ...
</style>

Btw, यह समर्थन पुस्तकालय 22.1 के लिए एक नया मुद्दा है।


@QadirHussain, नहीं, नहीं।
अंगरेजुडी एच

AppCompat.NoActionBar ने मेरे सभी textView कलर व्हाइट यूज़ किए। Theme.AppCompat.Light.NoActionBar की जगह
Hitesh Sahu

अभी भी काम नहीं करता है stackoverflow.com/questions/45643107/…
रुचिर बैरोनिया

16

जांचें कि आप setContentView()बाद में कॉल करते हैं super.onCreate(), और पहले नहीं। इससे मेरे मामले में मदद मिली।


WindowNoTitle और windowActionBar था, लेकिन फिर भी काम नहीं किया। यह मेरे लिए तय है। धन्यवाद!
avb


3

मेरे मामले में मैं .NoActionBar थीम में नहीं बदला। मैं सिर्फ इस आइटम से Android उपसर्ग हटा देता हूं।

<item name="windowActionBar">false</item>

और त्रुटि दूर हो जाती है।


इसका उल्लेख न करें। आपकी टिप्पणी देखकर खुशी हुई।
सेटमैक्स

3

निश्चित करें कि

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

मेरे लिए यह सब काम करता है सबसे ऊपर हैं .... शुभकामनाएँ



1

मैंने AppCompatActivity का विस्तार करते हुए अपनी मुख्य गतिविधि से इस मुद्दे को हल किया :)


1

मेरे पास कुछ ही मुद्दा था, android:मेरी शैली से हटा दिया गया । xml नीचे के अनुसार;

 <!-- caused crash -->
 <item name="android:windowActionBar">false</item>
 <item name="android:windowNoTitle">true</item>

 <!-- didn't cause crash -->
 <item name="windowActionBar">false</item>
 <item name="windowNoTitle">true</item>

0

मुझे वही समस्या थी जब मैंने लाइब्रेरी संस्करण को 22.0.0 से 22.1.1 तक अपग्रेड किया था और पिछले संस्करण पर वापस ड्रॉप करके इसे ठीक किया था: com.android.support:appcompat-v7:22.0.0 और ActionBarctivity का उपयोग करके वापस जाएं। संगतता लाइब्रेरी के नए संस्करण द्वारा आवश्यक के रूप में मेरी गतिविधि कक्षाओं में AppCompatActivity नहीं। मैं बाद में फिर से कोशिश करूँगा।


0

बस इसे अपनी शैली में उपयोग करें। कोई अन्य संपादन की आवश्यकता नहीं है

 <style name="AppTheme" parent="Theme.AppCompat">

<!-- theme customizations -->

<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

गतिविधि फ़ाइल में कुछ भी न जोड़ें कृपया इसे छोड़ दें

public class Main extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

 }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} 

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
    return true;
}
return super.onOptionsItemSelected(item);
}

 }

0

जावा वर्ग परिवर्तन में Main extends ActionBarActivityकरने के लिए Main extends Activity। इसने मेरे लिए काम किया।


0

मेरे मामले में, मैं @rewrihitesh उत्तर की तलाश में हूं, और मुझे लगता है कि मैं तत्वों के आदेश को उलटता हूं । से बदल रहा है

setContentView(R.layout.activity_test);
super.onCreate(savedInstanceState);

सेवा

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

मेरी समस्या को ठीक करो।

आशा करता हूँ की ये काम करेगा !!


0

यदि आपने जोड़ा है <item name="windowActionBar">false</item>, तो, आपको जोड़ने की आवश्यकता है

<item name="windowNoTitle">true</item>

इस समस्या को हल करने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.