2015-03-13 15 views
51

Kiedy tworzę nowy projekt na android studio to nie daje żadnego problemu. Jednak patrząc na projekt activity_main.xml, pokazuje mi to:Android Studio sdk wersja 22 wyjątek podczas renderowania: action_bar

Problemy z renderowaniem Wyjątek wywoływany podczas renderowania: action_bar.

kiedy zmienić poziom sdk 22 do 21 od strony projektowej android studio pokazuje nic

Jak mogę rozwiązać ten problem? To nie jest istotny problem, ale zastanawiałem się, jak mogę to naprawić.

Odpowiedz

0

Naprawiłem go zmieniając buildToolsVersion "21.1.2", na build.gradle(moduł: APP),

Nie używaj buildToolsVersion "22"

+0

dziękuję za odpowiedź –

96

Tak właśnie musiały dostosować poziom Android w rozwijanej. Podgląd zakładki projektu na poziomie interfejsu API 22 jest teraz zepsuty. Sprawdziłem, że ślad stosu dla błędu i ma coś wspólnego z potrzebą kanału alfa. Jestem pewien, że Google to naprawi w poniedziałek. :) enter image description here

+0

To wydawało się działać dla mnie. Dzięki. – Chrispix

+4

Myślę, że nadal nie jest naprawiony :( –

+1

Nadal nie został zgłoszony? –

0

Proszę użyć API21 budowy, aby zobaczyć podgląd. Jestem na macu i kompilacja 22 jest zepsuta/nie działa dla mnie. Kiedy przełączyłem się z powrotem na kompilację 21, mogłem zobaczyć podgląd.!

1

Przez kilka dni frustracji, w końcu dowiedziałem się, że odpowiedź leży w build.gradle mojego modułu aplikacji! Zmieniłem buildToolsVersion z 22 na 21.1.2, aby poprawnie rozwiązać ten wyjątek, taki jak twój. Wygląda na to, że cokolwiek związanego z API 22: Android 5.1 daje czkawkę w tej chwili. Mam nadzieję, że Google wkrótce to naprawi.

Zmiana tych linii w build.gradle dał mi szybkiego rozwiązania tego problemu:

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 
} 
20

ActionBar jest zastąpiona Toolbar, który został dodany w API 21. Jednak motyw podstawowy dla Androida Szablony Studio nadal wydają się używać motywów opartych na ActionBar.

Rozwiązaniem nie jest obniżenie wersji narzędzia do budowania, ale raczej zmiana motywu aplikacji. Jeśli zmniejszysz liczbę narzędzi do kompilacji, stracisz obsługę najnowszych funkcji dodanych w systemie Android 5.1 i nowszych wersjach.

Twój podstawowy motyw znajduje się w AndroidManifest.xml pod aplikacją/android: motyw.

Przejdź do opcji res/values ​​/ styles.xml i zmień atrybut nadrzędny na inny motyw podstawowy, który nie jest zależny od wycofanego pliku ActionBar. W mało prawdopodobnym przypadku, gdy Twoja aplikacja ma API 21+, możesz użyć Theme.Material. W przeciwnym razie musisz użyć Theme.AppCompat.NoActionBar lub zdefiniować własny motyw bazowy.

Oto styles.xml przykład:

<style name="AppTheme.Base" parent="Theme.AppCompat"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

Jeśli to wykorzystać, należy umieścić element Toolbar w układach XML gdzie chcesz ActionBar się pojawiać. Musisz dostosować pasek narzędzi za pomocą podrzędnych tagów XML. Polecam użycie tagu <include>.Jak wynika z dokumentacji paska narzędzi, nowe zasady projektowania Google wymagają zmiany stylu wizualnego:

W nowoczesnych interfejsach użytkownika Androida programiści powinni bardziej polegać na wizualnie odrębnym schemacie kolorów dla pasków narzędzi niż na ikonie aplikacji. Użycie ikony aplikacji oraz tytułu jako standardowego układu jest odradzane na urządzeniach z interfejsem API 21 i nowszych.

android.support.v7.widget.Toolbar znajduje się w bibliotece pomocy technicznej dla urządzeń pre-API 21.

EDYCJA: Jak wskazuje pierwszy komentarz, Google ma blog wyjaśniający, jak korzystać z nowego paska narzędzi Toolbar. http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

+0

To jest kompletna odpowiedź na przyszłość. Blog programistów Androida ma naprawdę dobrą dokumentację dotyczącą sytuacji http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html. – jalvarado91

0

Okazuje się, że nie można użyć buildToolsVersion "22" ani targetSdkVersion 22, ponieważ nie wyświetla się poprawnie. Wygląda na to, że może on renderować aplikację tylko wtedy, gdy jest ustawiony na API 21 lub niższy, ponieważ otrzymałem ten sam błąd i jak tylko zmieniłem go z powrotem na 21, zaczął działać ponownie. Po prostu wejdź na build.gradle (moduł: app) i zmień API z powrotem do najnowszej wersji API 21.

17

Przepraszamy za problem. Przyczyną problemu jest to, że biblioteka renderowania próbuje teraz użyć więcej rzeczywistego kodu z biblioteki appcompat, aby była bardziej dokładna. Jednakże ujawniło to pewne błędy w Android Studio, gdy projekt nie jest zbudowany.

Nie ma potrzeby aktualizowania plików gradle lub zmiany stylów, co sugerują niektóre z odpowiedzi.

Obejście polega na jednokrotnym zbudowaniu projektu, a następnie odświeżeniu renderingu poprzez wyczyszczenie pamięci podręcznej. Zobacz załączony obraz ikony odświeżania, która czyści pamięć podręczną.

Refresh Button Location

+0

DZIĘKUJEMY TON! Naprawdę pomógł :-) –

0

Rozwiązałem go poprzez przebudowę projektu lub moduł.

0

ułożenia:

utworzyć nowy folder wartościach V19

Tworzenie styles.xml w tym folderze

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- For actionBar n' statusbar --> 
    <item name="colorPrimary">#COLOR/item> 
    <item name="colorPrimaryDark">#COLOR</item> 

    <!-- For items --> 
    <item name="colorAccent">#COLOR</item> 
</style> 

i to wszystko :)

4

Ta odpowiedź pracował dla mnie:

MyActivity extends AppCompatActivity 

Zamiast:

MyActivity extends ActionBarActivity // now deprecated 

Wróć do podglądu, wyczyścić pamięć podręczną i odświeżyć!

Powiązane problemy