Nie można znaleźć następujących klas: android.support.v7.internal.app.WindowDecorActionBar

114

Co powoduje następujący błąd w podglądzie układu w Android Studio?

Problemy z renderowaniem Nie można znaleźć następujących klas: - android.support.v7.internal.app.WindowDecorActionBar (Napraw ścieżkę budowania, Utwórz klasę) Wskazówka: Spróbuj skompilować projekt.

Rahul
źródło
14
zamknięte jako nie na temat? poważnie? Ci, którzy głosowali za zamknięciem, zdecydowanie nie rozumieją pytania.
Jahid

Odpowiedzi:

273

Actionbar został wycofany i zastąpiony przez Toolbar. Biorąc to pod uwagę, możesz wykonać następujące czynności, jeśli chcesz nadal korzystać z paska akcji:

  1. Otwórz style.xml w folderze wartości w folderze res.
  2. Dodaj słowo Base na początku nazwy motywu, tak aby brzmiało „Base.Theme.AppCompat.Light.DarkActionBar”

wprowadź opis obrazu tutaj

Miałem dziś ten sam problem i to rozwiązanie zadziałało. FYI Jestem w Android Studio, ale mam nadzieję, że rozwiązanie jest podobne dla Eclipse.

Do Twojej wiadomości tutaj jest przyzwoity post na blogu dotyczący zastąpienia paska Actionbar paskiem narzędzi, gdy będziesz gotowy, aby to zrobić: https://blog.xamarin.com/android-tips-hello-toolbar-goodbye-action-bar/

joshgoldeneagle
źródło
8
Nie ma to jak Goog zmieniający rzeczy spod ciebie. Jeszcze raz. Niezłe wykrycie @joshgoldeneagle!
saywhatnow
7
Otrzymałem ten błąd podczas tworzenia nowego domyślnego projektu w Android Studio. To rozwiązało problem.
AutonomousApps,
Po jednym dniu badań w końcu udało mi się rozwiązać problem. Dzięki @joshgoldeneale
Abish R
jeśli „Base.Theme.AppCompat.Light.DarkActionBar” nie działa, spróbuj „Theme.Base.AppCompat.Light.DarkActionBar”, ponieważ działa dla mnie ... :) (Android Studio 3.0.1)
Mang Jojot
Jesteś niesamowity
Naveed Ahmad
46

Myślę, że musisz polegać na "com.android.support:appcompat-v7:23.1.1"swoich moduleustawieniach.

ActionBar został wycofany.

Po prostu zmień swoje zależności z 'com.android.support:appcompat-v7:23.1.1'na 'com.android.support:appcompat-v7:23.0.1'w „build.gradle” .

Możesz także zmienić swojego rodzica stylu na "Theme.AppCompat.Light.NoActionBar".

Spróbuj użyć Toolbarzamiast ActionBar.

Przystojny. Ty
źródło
32

Ten działa dla mnie

Zmiana elementu nadrzędnego AppTheme w res / values ​​/ styles.xml rozwiązała ten problem. Zastąpić

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>

z

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>

Lub możesz zmienić poziom API 21 z listy.

Ravikant Paudel
źródło
6
To działa, ale co dokładnie robi po umieszczeniu Base.Theme?
Micro
Android miał wprowadzony pasek narzędzi zamiast paska akcji, który jest przyczyną tego błędu, ale zmieniając go na Base. Motyw po prostu rozwiązujesz problem. Domyślnie nie zmienia się to samodzielnie (w obecnej wersji Android Studio) więc musimy to zrobić ręcznie. Możesz także przejrzeć inne odpowiedzi, które również mówią ci to samo. Przepraszam, że byłem zajęty projektem, więc nie mogę szybko odpowiedzieć.
Ravikant Paudel
9

goto: res -> wartości -> style (V21) ->

Kod

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

wybierz motyw jak Apptheme.NoActionBarw podglądzie . Ponieważ ActionBarjest pozbawiony, witamy z powrotem ToolBar. NIE musisz zmieniać swoich zależności w build.gradle(Module:app). od com.android.support:appcompat-v7:23.1.1do com.android.support:appcompat-v7:23.0.1.

Mam nadzieję, że to ci pomoże !!!

Narendra Baratam
źródło
8

Miałem podobny problem i jak wielu powiedziało, odkąd ActionBar został przestarzały, sztuczka polegała na sprecyzowaniu

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

UWAGA: że rodzic kończy się na .NoActionBar.

Ponieważ ActionBar został wycofany, Android zaczął używać ToolBar, o którym możesz przeczytać tutaj na developer.android.com

Spróbowałem określić

<style name="AppTheme.NoActionBar">

Jak stwierdził inny post i to wyrzuciło błędy. Chociaż inni mogą nie mieć tego problemu.

john.weland
źródło
4

Mam ten sam problem w Android Studio 1.5 (nawet z AppCompatActivity), a moją próbą rozwiązania problemu była aktualizacja mojego Android Studio do 2.0. To rozwiązuje problem w moim przypadku. Link do pobrania można znaleźć w: http://tools.android.com/download/studio/canary/latest

ninjahoahong
źródło
Poza tym Android Studio 2.0 ma błyskawiczne uruchamianie, co moim zdaniem jest bardzo fajne. Mój kod natychmiast aktualizuje się na moim urządzeniu. Naprawdę powinieneś tego spróbować.
ninjahoahong
3

dzięki @joshgoldeneagle, pracował dla mnie w AS v1.4. również efektywne w AS to otwarcie "build.gradle (Module.app)" i zmiana wersji z v7.23.1.1 na v7.23.0.1 -hth

uber
źródło
2

Szybka naprawa

Wybierz motyw bez AtcionBar w narzędziu podglądu interfejsu użytkownika
Wybierz przycisk obrazu wprowadź opis obrazu tutaj

vovaost
źródło
2

Będziesz musiał zmienić poziom renderowania api na 17, może wystąpić problem z renderowaniem z interfejsami API wyższego poziomu, być może api wyższego poziomu mogą mieć domyślny motyw i mam nadzieję, że nie określono żadnego.

wprowadź opis obrazu tutaj

Bajrang Hudda
źródło
1

Dla AS v1.4 dodanie „Base” przed Theme.AppCompat.Light.DarkActionBar w folderze styles.xml rozwiązało problem

Dodatkowo aktualizacja do AS v2.1 również rozwiązała problem. To, co jest bardziej prawdopodobne, zależy od współpracowników i ich wersji AS.

devin e
źródło
0

W res / values ​​/ styles.xml znajdziesz swój AppTheme, jak poniżej: -

Zmień to na: -

dodając „Base” problem z renderowaniem zostanie rozwiązany.

JayJoshi
źródło
0

Zmiana motywu w manifeście rozwiązała mój problem.

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Milon
źródło