Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

This Activity already has an action bar supplied by the window decor

Trying to move over my stuff to use Toolbar instead of action bar but I keep getting an error saying

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) 

so then I added in my style for my activity to have no actionbar

<style name="AppCompatTheme" parent="@style/Theme.AppCompat.Light">         <item name="android:windowActionBar">false</item> </style> 

and the theme is applies to activties in my manifest

<activity         android:name=".MainActivity"         android:windowSoftInputMode="adjustResize|stateHidden"         android:theme="@style/AppCompatTheme" android:screenOrientation="portrait"/> 

MainActivity extends GooglePlayServiceActivity so I also set the theme there too

<activity        android:name=".GooglePlayServicesActivity"        android:label="@string/title_activity_google_play_services"        android:theme="@style/AppCompatTheme"> 

but I still get the error. I also do not request window feature anywhere. any ideas why I still get this?

like image 695
tyczj Avatar asked Oct 22 '14 18:10

tyczj


People also ask

Where the action bar is present in the activity screen by default?

In Android applications, ActionBar is the element present at the top of the activity screen.

How do I get the toolbar from action bar?

if you are using custom toolbar or ActionBar and you want to get reference of your toolbar/action bar from Fragments then you need to first get instance of your Main Activity from Fragment's onCreateView Method like below. ImageView vRightBtn = activity. toolbar.

What is windowActionBar in Android?

android:windowActionBar denotes property for lollipop and above only. Where as windowActionBar denotes for all versions and is retrieved from support library. Follow this answer to receive notifications.

Which view can be used to customize the action bar?

Custom Action Bar Layout The view layout consists of two ImageButtons that represent forward and back image buttons and a TextView in the center.


1 Answers

I think you're developing for Android Lollipop, but anyway include this line:

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

to your theme declaration inside of your app/src/main/res/values/styles.xml.

Also, if you're using AppCompatActivity support library of version 22.1 or greater, add this line:

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

Your theme declaration may look like this after all these additions:

<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">     <!-- Customize your theme here. -->     <item name="colorPrimary">@color/colorPrimary</item>     <item name="colorPrimaryDark">@color/colorPrimaryDark</item>     <item name="colorAccent">@color/colorAccent</item>     <item name="windowActionBar">false</item>     <item name="windowNoTitle">true</item> </style> 
like image 62
Nadir Belhaj Avatar answered Oct 07 '22 14:10

Nadir Belhaj