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?

2voto

jay fegade Punkte 83

Versuchen Sie, das Elternteil des Anwendungsthemas zu ändern

Ändern Sie unten in themes.xml

</code></pre>
<p>zu</p>
<pre><code><style name="AppCompatTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
</code></pre>
<p>ODER
hier ist der richtige Weg, um die Aktionsleiste in der Themendefinition zu deaktivieren</p>
<pre><code>    <style name="AppCompatTheme" parent="@style/Theme.AppCompat.Light">    
    <item name="windowActionBar">false</item>
                <item name="windowNoTitle">true</item>

1voto

live-love Punkte 40586

Es könnte auch daran liegen, dass Sie einen Stil ohne spezifizierten Elternelement haben:

    <item name="searchBarBgColor">#D6D6D6</item>

Entfernen Sie es, und das sollte das Problem beheben.

1voto

live-love Punkte 40586

Ich habe diesen Fehler aufgrund eines benutzerdefinierten Attributs erhalten, das darin enthalten war. Das Entfernen hat das Problem behoben.

..
        <item name="searchBarBgColor">#383838</item>  --> diese Zeile entfernen

1voto

Gleichmut Punkte 4741

Ihre App sollte DayNight-Modus automatisch unterstützen, wenn Sie dieses Theme haben:

</code></pre>
<p>Wenn Sie jedoch eine benutzerdefinierte Aktionsleiste über Toolbar in einigen Ihrer Layouts bereitstellen, müssen Sie es durch Folgendes ersetzen:</p>
<pre><code><style name="Theme.YourProjectName" parent="Theme.MaterialComponents.DayNight.NoActionBar">
</code></pre>
<p>Achten Sie darauf, dass Sie <code>values/themes.xml</code> und <code>night/themes.xml</code> haben. Sie müssen <code>Theme.MaterialComponents.DayNight.NoActionBar</code> in beiden Dateien behalten.</p></x-turndown>

0voto

Sandeep Dixit Punkte 390

Viele hier gegebene Antworten sind korrekt. Meine Umschreibung.

Wenn Sie Ihrer App explizit eine App-Leiste/handlungsleiste hinzufügen, müssen Sie die Standardleiste ausschalten. Das heißt, wenn Sie Elemente wie

oder

verwenden möchten, müssen Sie die implizite Aktionsleiste mit dem richtigen Stil ausschalten.

Das Erste ist, den Wurzel-Themendes Ihrer Anwendung anzusehen (den im androidmanifest.xml-Tag genannten).

-----
dann sollte Ihre style.xml oder theme.xml oder ähnliche Datei einen Stil haben, der die Standardaktionsleiste ausschaltet.

</code></pre>
<p>oder Sie können einen expliziten Stil verwenden, um ihn vom Wurzelthema aus auszublenden.</p>
<pre><code><item name="windowActionBar">false</item> 
</code></pre>
<p>Sie sollten die App-Bar-Dokumentation durchgehen
<a href="https://developer.android.com/training/appbar/setting-up" rel="nofollow noreferrer">https://developer.android.com/training/appbar/setting-up</a></p></x-turndown>

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