597 Stimmen

Diese Aktivität verfügt bereits über eine Aktionsleiste, die vom Fensterdekor bereitgestellt wird.

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: Diese Activity hat bereits eine Action Bar, die vom Fensterdekor bereitgestellt wird. Fordern Sie nicht Window.FEATURE_ACTION_BAR an und setzen Sie windowActionBar in Ihrem Theme auf false, um stattdessen eine Toolbar zu verwenden.
            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: Diese Activity hat bereits eine Action Bar, die vom Fensterdekor bereitgestellt wird. Fordern Sie nicht Window.FEATURE_ACTION_BAR an und setzen Sie windowActionBar in Ihrem Theme auf false, um stattdessen eine Toolbar zu verwenden.
            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 habe ich meinem Stil für meine Aktivität hinzugefügt, um keine Actionbar zu haben

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

und das Thema wird auf Aktivitäten in meinem Manifest angewendet

MainActivity erweitert GooglePlayServiceActivity, also habe ich das Thema auch dort festgelegt

aber ich bekomme immer noch den Fehler. Ich fordere auch nirgendwo die Fensterfunktion an. Irgendwelche Ideen, warum ich das immer noch bekomme?

3voto

yash sachdeva Punkte 636

Einfach ausgedrückt, Sie können folgendes tun:-

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

    }

3voto

John Joe Punkte 11502

So habe ich das Problem gelöst. Fügen Sie den folgenden Code in Ihre AndroidMainfest.xml ein

3voto

Deepanshu Punkte 133

Es ist sehr einfach, du musst nur einen Schritt von beiden ausführen..

  1. Ändern Sie den Anzeigemodus Ihres Geräts vom Dunkelmodus in den Normalmodus oder .
  2. In style.xml, wenn Sie AppCompat verwenden, fügen Sie diese 2 Zeilen in Ihr Thema/Stil ein..false true

2voto

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

    Ändern Sie dies zu NoActionBar 

            <!-- Passen Sie Ihr Thema hier an. -->

    Dies hat bei mir funktioniert

2voto

Michael Konz Punkte 523

Ich habe mein App-Thema abgeleitet von Theme.Material3.DayNight.NoActionBar, das false hat und auf allen Aktivitäten gut funktioniert.

Aber sobald ich das Gerät in den Dunkelmodus umstelle, erhalte ich den Fehler Diese Aktivität hat bereits eine Aktionsleiste, die vom Fensterdekor bereitgestellt wird.

Ich muss anwenden

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

auf jede Aktivität.

Ich finde das merkwürdig, da das App-Thema bereits ohne Aktionsleiste definiert ist. Konnte bisher noch keinen Grund dafür finden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X