Cette activité a déjà une barre d’action fournie par le décor de la fenêtre

Essayer de passer sur mes affaires pour utiliser la Toolbar au lieu de la barre d’action, mais je continue à avoir une erreur en disant

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tyczj.weddingalbum/com.xxx.xxx.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. at android.support.v7.app.ActionBarActivityDelegateBase.setSupportActionBar(ActionBarActivityDelegateBase.java:165) at android.support.v7.app.ActionBarActivity.setSupportActionBar(ActionBarActivity.java:92) at com.xxx.xxx.MainActivity.onCreate(MainActivity.java:113) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)            at android.app.ActivityThread.access$600(ActivityThread.java:141)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)            at android.os.Handler.dispatchMessage(Handler.java:99)            at android.os.Looper.loop(Looper.java:137)            at android.app.ActivityThread.main(ActivityThread.java:5039)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:511)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)            at dalvik.system.NativeStart.main(Native Method) 

alors j’ai ajouté dans mon style pour que mon activité n’ait aucune barre d’action

  false  

et le thème est applicable aux activités dans mon manifeste

  

MainActivity étend GooglePlayServiceActivity donc j’y ai aussi défini le thème

  

mais j’ai toujours l’erreur. Je ne demande pas non plus la fonctionnalité de fenêtre n’importe où. des idées pourquoi je reçois toujours ça?

Je pense que vous développez pour Android Lollipop, mais de toute façon inclure cette ligne:

 false 

à votre déclaration de thème à l’intérieur de votre app/src/main/res/values/styles.xml .

De plus, si vous utilisez la bibliothèque de AppCompatActivity charge AppCompatActivity de la version 22.1 ou supérieure, ajoutez cette ligne:

 true 

Votre déclaration de thème peut ressembler à ceci après tous ces ajouts:

   

Un autre moyen simple consiste à faire de votre thème un enfant de Theme.AppCompat.Light.NoActionBar comme ceci:

  

Ajoutez une seule ligne android:theme="@style/AppTheme.NoActionBar" à l’ activity dans AndroidManifest et vous l’avez fait.


AndroidManifest.xml :

  

styles.xml

  

Pour utiliser la barre d’outils en tant que barre d’action, désactivez d’abord la barre d’action fournie avec le décor.

Le moyen le plus simple est de prolonger votre thème de

Theme.AppCompat.NoActionBar

(ou sa variante légère).

Deuxièmement, créez une instance de barre d’outils, généralement via votre XML de présentation:

  

Ensuite, dans votre activité ou fragment, définissez la barre d’outils pour agir en tant que barre d’action:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.blah); Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar); } 

Ce code a fonctionné pour moi.

Si vous voulez combiner certaines activités avec actionbar et d’autres pas, vous devez utiliser le thème de base avec la barre d’action activée, puis créer un sous-thème que vous utiliserez sur des activités ne nécessitant pas de barre d’action

Par exemple, vous pouvez utiliser un sous-style comme celui-ci

   

Alors que le thème de base s’étend

   

puis utilisez le thème non actionbar dans le fichier AndroidManifest dans la balise d'activité

   

vous devez l'appliquer à chaque activité individuelle qui ne nécessite pas de barre d'action. Par conséquent, si votre projet requirejs moins d'activités de la barre d'action que non, il est préférable de l'appliquer au niveau du thème de base.

Ajoutez ceci dans vos valeurs / styles.xml

    

Et ajoutez le code suivant dans vos valeurs-v11 / styles.xml et values-v14 / styles.xml

  

C’est tout. Ça va marcher.

Accédez au style.xml de votre projet et rendez windowActionBar sur false

  

Ajoutez ces deux lignes dans le thème de votre application situé dans style.xml: –

   

Vous devez changer

   ` 

ces lignes dans le manifeste.Il fonctionnera parfaitement pour moi.

J’ai eu la barre d’outils ajoutée dans mon xml. Ensuite, dans mon activité, j’ajoutais cette déclaration:

 setSupportActionBar(toolbar); 

Enlever cela a fonctionné pour moi. J’espère que ça aide quelqu’un.

J’ai aussi fait face au même problème. Mais j’ai utilisé:

getSupportActionBar().hide();

avant

setContentView(R.layout.activity_main);

Maintenant ça marche.

Et nous pouvons essayer une autre option dans Style.xml ,

  

Si vous utilisez l’activité Appcompact utilisez ces trois lignes dans votre thème.

 true false false 

En termes simples, vous pouvez faire ce qui suit: –

 if (android.os.Build.VERSION.SDK_INT >= 21) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setStatusBarColor(getResources().getColor(R.color.colorPrimaryDark)); } 

C’est comme ça que j’ai résolu le problème. Ajouter le code ci-dessous dans votre AndroidMainfest.xml

   

Si vous obtenez l’erreur sur cette ligne:

 setSupportActionBar(...); 

Vous devez vérifier si votre activité fait référence à un thème contenant une barre d’outils. AppTheme de votre application peut déjà contenir une barre d’outils, telle que

  

et vous essayez d'append un second. Si vous souhaitez utiliser AppTheme de votre application, vous devez supprimer le thème de votre activité, dans le fichier manifest.xml.

Par exemple:

  --> remove this theme 

Une version plus courte d’un style peut également aider:

  

Il suffit de mettre parent="Theme.AppCompat.NoActionBar" dans votre fichier style.xml

Like –

Je l’ai résolu en supprimant cette ligne:

android:theme="@style/Theme.MyCompatTheme"

à partir des propriétés de l’activité dans le Manifest file