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.
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>
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.
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.
Vérifiez si vous appelez setContentView () après super.onCreate () et pas avant. Cela a aidé dans mon cas.
Utilisez ce parent dans Style.xml parent = "Theme.AppCompat.Light.NoActionBar"
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
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.
ajouter de la dépendance à graver comme ça
compile 'com.Android.support:appcompat-v7:21.0.3'
J'ai résolu le problème par mon activité principale, qui étend AppCompatActivity :)
Dans Java classe, changez Main extends ActionBarActivity
en Main extends Activity
. Cela a fonctionné pour moi.
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>
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 !!
si vous avez ajouté <item name="windowActionBar">false</item>
, vous devez ajouter
<item name="windowNoTitle">true</item>
résoudre le problème.
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.
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);
}
}