web-dev-qa-db-fra.com

java.lang.IllegalArgumentException: AppCompat ne prend pas en charge les fonctionnalités de thème actuelles.

J'ai essayé de migrer un projet d'Eclipse vers le studio Android. Enfin, je suis capable de l'exécuter, mais à un moment donné, j'ai eu cette exception et je n'ai rien trouvé dans google à ce sujet:

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. La ligne de MainActivity est:

setContentView(R.layout.activity_main);

S'il vous plaît, conseillez-moi si vous le pouvez.

107
Adam Varhegyi

alternative à la réponse de @ sbaar,

conservez windowActionBar sur false, ajoutez windowNoTitle aussi bien et réglez-le sur true.

c'est à dire

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

Retirer

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

à partir de votre thème, puis assurez-vous d’hériter d’un thème .NoActionBar, puis définissez votre barre d’outils comme d’habitude.

40
sbaar

Assurez-vous que votre thème est enfant de Theme.AppCompat.NoActionBar, puis dans styles.xml:

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

Btw, c'est un nouveau problème pour Support Library 22.1.

29
Anggrayudi H

Vérifiez si vous appelez setContentView () après super.onCreate () et pas avant. Cela a aidé dans mon cas.

16
wilddev

Utilisez ce parent dans Style.xml parent = "Theme.AppCompat.Light.NoActionBar"

5
atrivedi

Sois sûr que

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

sont au sommet de tout ce que cela fonctionne pour moi .... bonne chance

3
rewrihitesh

dans mon cas, je n'ai pas changé pour .NoActionBar Theme. je supprime simplement Android le préfixe de cet élément.

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

et l'erreur s'en va.

3
Setmax

ajouter de la dépendance à graver comme ça

compile 'com.Android.support:appcompat-v7:21.0.3'
1

J'ai résolu le problème par mon activité principale, qui étend AppCompatActivity :)

1
russellhoff

Dans Java classe, changez Main extends ActionBarActivity en Main extends Activity. Cela a fonctionné pour moi.

0

J'avais un peu le même problème, enlevé Android: de mon fichier syles.xml comme indiqué ci-dessous;

 <!-- 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
BENN1TH

Dans mon cas, je cherche la réponse @rewrihitesh, et je remarque que je ordre des éléments inversés. Changer de

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

à

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

Résoudre mon problème.

J'espère que ça aide !!

0
Gueorgui Obregon

si vous avez ajouté <item name="windowActionBar">false</item>, vous devez ajouter

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

résoudre le problème.

0
user6088902

J'ai eu le même problème lorsque j'ai mis à niveau la version de bibliothèque de 22.0.0 à 22.1.1 et que je l'ai corrigé en revenant à la version précédente: com.Android.support:appcompat-v7:22.0.0 et en revenant à utiliser ActionBarActivity, pas AppCompatActivity dans mes classes d'activité comme requis par la version plus récente de la bibliothèque de compatibilité. Je réessaierai plus tard.

0
Gail

utilisez simplement ceci dans votre style.xml, aucune autre édition n'est nécessaire

 <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>

ne rien ajouter au fichier d'activité s'il vous plaît laissez-le

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
Ribin Haridas