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?

6voto

Asim Roy Punkte 9825

Gehen Sie zum 'style.xml' Ihres Projekts und setzen Sie windowActionBar auf false

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

5voto

Kailash Dabhi Punkte 3435

Fügen Sie diese zwei Zeilen in Ihrem App-Thema in der Datei style.xml hinzu:

    <!-- Passen Sie Ihr Theme hier an. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    //Das Hinzufügen dieser zwei Zeilen wird Ihr Problem lösen
    <item name="windowNoTitle">true</item>   <--1(dies gilt nach der Unterstützungsbibliothek 22.0.1, denke ich) 
    <item name="windowActionBar">true</item> <--2
</code></pre>

<p></p></x-turndown>

5voto

live-love Punkte 40586

Wenn Sie den Fehler in dieser Zeile erhalten:

setSupportActionBar(...);

Müssen Sie überprüfen, ob Ihre Aktivität auf ein Theme verweist, das eine Toolbar enthält. Das AppTheme Ihrer Anwendung enthält möglicherweise bereits eine Toolbar, wie zum Beispiel

</code></pre>

<p>und Sie versuchen eine zweite hinzuzufügen. Wenn Sie das AppTheme Ihrer Anwendung verwenden möchten, müssen Sie das Theme aus Ihrer Aktivität entfernen, in der manifest.xml-Datei.</p>

<p>Zum Beispiel:</p>

<pre><code><activity
    android:name=".ui.activities.SettingsActivity"
    android:theme="@style/AppTheme1" /> --> dieses Theme entfernen
</code></pre></x-turndown>

5voto

Syed Hamza Hassan Punkte 710

Wenn Sie die Appcompact Activity verwenden, verwenden Sie diese drei Zeilen in Ihrem Theme.

true
false
false

4voto

Harry .Naeem Punkte 1107

Ich hatte eine Symbolleiste in meinem XML hinzugefügt. Dann habe ich in meiner Aktivität diese Anweisung hinzugefügt:

setSupportActionBar(toolbar);

Das Entfernen hat bei mir funktioniert. Ich hoffe, es hilft jemandem.

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