BŁĄD: problemy z renderowaniem Nie można znaleźć następujących klas android.support.v7.internal.widget.ActionBarOverlayLayout

97

Jestem tylko początkującym w tworzeniu aplikacji na Androida. Kiedy utworzyłem nowy projekt w Android Studio 1.1.0, porzucono ten błąd „ problemy z renderowaniem Nie można znaleźć następujących klas android.support.v7.internal.widget.ActionBarOverlayLayout

Teraz szukałem tego w Google i znalazłem prawdopodobnie 3 rozwiązania podane przez większość ludzi.

Mówią:

  1. Zmień interfejs API (z okienka podglądu) z 22 na 21 lub

  2. Zmień motyw aplikacji z „Motyw projektu” na inny motyw.

  3. upewnij się, że zaimportowałeś odpowiednią bibliotekę appcompat-v7 w swojej strukturze projektu -> zależności, zapoznaj się z następującymi krokami : Dodaj identyfikator projektu funkcji biblioteki obsługi do sekcji zależności. Na przykład, aby uwzględnić projekt appcompat, dodaj kompilację „com.android.support:appcompat-v7:18.0.+” do sekcji zależności, jak pokazano w poniższym przykładzie:

dependencies {
    ...
    compile "com.android.support:appcompat-v7:18.0.+" }

Uwaga: Moja biblioteka obsługi systemu Android jest aktualna (zainstalowano ją za pomocą Menedżera SDK).

Po wykonaniu pierwszych dwóch kroków usunięto błąd. Ale czuję, że nie są to trwałe rozwiązania, Drugi krok wydaje się być tymczasowym obejściem. Mam też wątpliwości co do pierwszego kroku, że jeśli usuniemy błąd, zmienimy api z 22 na 21, to na końcu nasza aplikacja nie będzie działać w systemie Android 5.1.1 (API 22), będzie ograniczona do Androida 5.0 .1 i tylko poniżej (API 21). Czy moje wątpliwości są uzasadnione? Jeśli chodzi o trzeci krok, czy jest to trwałe rozwiązanie tego problemu?

PS: Przepraszamy za niedopasowanie tagów, nie wolno było dodawać dokładnych tagów ze względu na reputację witryny

Ashish Goyal
źródło
1
Dla mnie nawet pierwsze dwa kroki nie rozwiązują problemu ... Otrzymuję „problemy z renderowaniem” ze wszystkimi układami, które mają widoki z android.support. *. To jest frustrujące!
user1987392

Odpowiedzi:

162

Napraw res / values ​​/ styles.xml w następujący sposób:

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

Szczegółowe wyjaśnienie zgodnie z prośbą: i tak Theme.AppCompat.Light.DarkActionBarjest podklasą nadklasy Base. Ctrl + kliknij (Android Studio), a zostaniesz przeniesiony do źródła:

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

Niczego nie zmieniliśmy, po prostu zdefiniowaliśmy to dokładniej.

eee
źródło
29
Wow, co za kiepskie doświadczenie w Android Studio.
Warren P
6
Jeśli chcę użyć „Theme.AppCompat.Light.NoActionBar”, to co?
Haseeb Jadoon
4
O dziwo, dodano słowo „Baza”. pracował dla mnie. "Cała twoja baza należy do nas."
SMBiggs
1
U mnie też zadziałało ... Pracuję na starej aplikacji i Base naprawił błąd!
Saeid Yazdani
1
Dlaczego precyzyjne zdefiniowanie motywu rozwiązuje problem?
Robert
28

Jest to znany błąd od czasu wydania Android Studio w wersji 1.1 (nadal występuje w wersji zapoznawczej 1.2 i 1.3). Zmiana poziomu interfejsu API wersji zapoznawczej z 22 na 21 rozwiązuje problem większości ludzi. Czekając na poprawkę, też możesz spróbować.

wprowadź opis obrazu tutaj

Oryginalna odpowiedź tutaj: Problemy z renderowaniem w Android Studio v 1.1 / 1.2

Po prostu przesyłam ponownie

Sagar Devanga
źródło
16

Zmodyfikuj src / res / values ​​/ styles.xml

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

Następnie wybierz API22, a ten problem zostanie rozwiązany!

sudoz
źródło
3

Po tym błędzie używam:

API-22 Android 5.1.1 i nadal ten problem istnieje, ale możesz w górnej części paska narzędzi Android Studio wybrać:

Material Light -> Material Light

a następnie możesz zobaczyć podgląd z paskiem narzędzi i jasnym motywem.

Mam nadzieję że to pomoże.

ʍѳђ ઽ ૯ ท
źródło
1

Rozwiązałem ten problem, przełączając się na motyw Holo Dark, a następnie z powrotem do motywu aplikacji. Właśnie kliknąłem przycisk nad przeglądarką z napisem Motyw aplikacji obok widoku obracania w Android Studio. W 10% przypadków to samo nie działa i muszę też zmienić API przeglądarki z 22 na 19.

Nie mam pojęcia, dlaczego to działa, ale powyższe sugestie nie zadziałały.

Austin Capobianco
źródło
0

Nie musisz zmieniać motywu. Może rozszerzasz ActionBarActivity (przestarzałe) zamiast tylko Activity. Zmień to i skompiluj projekt.

Kley
źródło
Nowe zasady @Kleyton, zamiast rozszerzać ActionBarActivity (który jest obecnie przestarzały), zaleca się rozszerzenie AppCompatActivity (zgodnie ze stronami programistów Google Android).
Ashish Goyal
0

Jeśli zmienisz działanie z ActionBarActivity na zwykłe działanie, nie zapomnij zaimportować samego działania. To jest

import android.app.Activity

To jest do bani, ale hej, to ich wina, a nie nasza.

Możesz także po prostu zmienić motyw, naciskając przycisk „AppTheme” i wybierając Holo.Light.DarkActionBar. Automatycznie aktualizuje plik styles.xml, a następnie odbudowuje projekt.

Zrobiłem to wszystko i to działa dla mnie, chociaż myślę, że ci faceci w Google i IntelliJ powinni coś zrobić z tym problemem z renderowaniem, ponieważ powiedziano nam, aby przejść z Eclipse do Android Studio

Andrecon
źródło
Pojawiły się nowe zasady, stary! Zamiast rozszerzać ActionBarActivity (który jest obecnie przestarzały), zaleca się rozszerzenie AppCompatActivity (zgodnie ze stronami programistów Google Android).
Ashish Goyal
Czy działa tak samo, jak w Aktywności? I czy rozwiązuje problemy z renderowaniem XML?
Andrecon
Zgodnie ze stronami programistów Google Android, to (AppCompatActivity) dba o wszystko, co robiła ActionBarActivity
Ashish Goyal