Эта активность уже имеет панель действий, предоставляемую декором окна

Пытаясь переместить мои вещи, чтобы использовать Toolbar вместо Toolbar действий, но я продолжаю получать сообщение об ошибке

 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) 

Поэтому я добавил в свой стиль для своей активности отсутствие панели действий

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

И тема относится к мероприятиям в моем манифесте

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

MainActivity расширяет GooglePlayServiceActivity, поэтому я также задал тему там

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

Но я все еще получаю ошибку. Я также не запрашиваю функцию окна в любом месте. Любые идеи, почему я все еще получаю это?

Я думаю, что вы разрабатываете для Android Lollipop, но в любом случае включите эту строку:

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

К вашей декларации темы внутри вашего app/src/main/res/values/styles.xml .

Кроме того, если вы используете библиотеку поддержки AppCompatActivity версии 22.1 или выше, добавьте эту строку:

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

Ваше объявление темы может выглядеть так после всех этих дополнений:

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

Еще один простой способ – сделать вашу тему дочерью Theme.AppCompat.Light.NoActionBar следующим образом:

 <style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar"> ... </style> 

Добавьте отдельную строку android:theme="@style/AppTheme.NoActionBar" к activity в AndroidManifest и вы это сделали.


AndroidManifest.xml :

 <activity android:name=".activity.YourActivity" android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE --> 

styles.xml

 <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Чтобы использовать панель инструментов в качестве панели действий, сначала отключите защищенную от декора панель действий.

Самый простой способ – продлить вашу тему

Theme.AppCompat.NoActionBar

(Или его легкий вариант).

Во-вторых, создайте экземпляр панели инструментов, обычно с помощью своего макета XML:

 <android.support.v7.widget.Toolbar android:id=”@+id/my_awesome_toolbar” android:layout_height=”wrap_content” android:layout_width=”match_parent” android:minHeight=”?attr/actionBarSize” android:background=”?attr/colorPrimary” /> 

Затем в своей деятельности или фрагменте установите панель инструментов в качестве панели действий:

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

Этот код работал для меня.

Если вы хотите объединить некоторые действия с панелью действий, а другие нет, вы должны использовать базовую тему, активированную панель действий, а затем создать подтеку, которую вы собираетесь использовать для действий, для которых не требуется панель действий

Например, вы можете использовать вспомогательный стиль, подобный этому

  <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

В то время как основная тема расширяет

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

А затем используйте тему non actionbar в файле AndroidManifest в теге активности.

  <activity android:name="com.example.NonActionBarActivity" android:theme="@style/AppTheme.NoActionBar" 

Вы должны применить это к каждому отдельному действию, для которого не требуется панель действий, поэтому, если вашему проекту требуется меньше действий в действиях, чем нет, тогда лучше применить это на базовом уровне темы

Добавьте это в свои значения / styles.xml

 <style name="YourCustomTheme" parent="Theme.AppCompat.Light.NoActionBar"> </style> <style name="AppBaseTheme" parent="YourCustomTheme"> </style> <style name="AppTheme" parent="AppBaseTheme"> </style> 

И добавьте следующий код в свои значения: v11 / styles.xml и values-v14 / styles.xml

 <style name="AppBaseTheme" parent="YourCustomTheme"> </style> 

Это оно. Это будет работать.

Перейдите в «style.xml» вашего проекта и сделайте windowActionBar равным false

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

Добавьте эту две строки в тему приложения, расположенную в файле style.xml: –

  <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> //Add this two line will fix your problem <item name="windowNoTitle">true</item> <--1(this applies after 22.0.1 support library i think <item name="windowActionBar">true</item> <--2 

Я также столкнулся с такой же проблемой. Но я использовал:

getSupportActionBar().hide();

до

setContentView(R.layout.activity_main);

Теперь он работает.

Вы должны изменить

  <activity android:name=".YOUR ACTIVITY" android:theme="@style/AppTheme.NoActionBar" /> </application>` 

Эти строки в манифесте. Это отлично сработает для меня.

Если вы используете Appcompact Activity, используйте эти три строки в своей теме.

 <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowActionBarOverlay">false</item> 

Проще говоря, вы можете сделать следующее: –

 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)); } 

Вот как я решил проблему. Добавьте ниже код в свой AndroidMainfest.xml

 <activity android:name=".YourClass" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> </activity> 

У меня была добавлена ​​панель инструментов в моем xml. Затем в моей деятельности я добавлял это заявление:

 setSupportActionBar(toolbar); 

Удаление этого сработало для меня. Надеюсь, это поможет кому-то.

Я решил это, удалив эту строку:

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

Из свойств активности в Manifest file