Podczas próby użycia najnowszej biblioteki obsługi aplikacji appcompat-v7 w moim projekcie pojawia się następujący błąd:
/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Jak to naprawić?
Odpowiedzi:
Podczas gdy odpowiedź loeschga jest absolutnie poprawna, chcę tylko rozwinąć ją i podać rozwiązanie dla wszystkich IDE (Eclipse, IntellJ i Android Studio), nawet jeśli błędy nieznacznie się różnią.
Wymagania wstępne
Upewnij się, że pobrałeś najnowsze,
extras
jak również zaAndroid 5.0 SDK
pośrednictwem SDK-Manager.Android Studio
Otwórz
build.gradle
plik modułu aplikacji i zmień gocompileSdkVersion
na 21. Zasadniczo nie jest konieczne zmienianie wersjitargetSdkVersion
SDK na 21, ale jest to zalecane, ponieważ zawsze powinieneś kierować reklamy na najnowszą wersję Androida .Na koniec plik stopni będzie wyglądał następująco:
Następnie zsynchronizuj projekt.
Zaćmienie
Korzystając z
v7-appcompat
Eclipse, musisz użyć go jako projektu biblioteki. Nie wystarczy po prostu skopiować/libs
plik * .jar do folderu. Przeczytaj ten samouczek krok po kroku na developer.android.com , aby dowiedzieć się, jak prawidłowo zaimportować projekt.Gdy tylko projekt zostanie zaimportowany, zauważysz, że niektóre foldery w
/res
folderze są podkreślone na czerwono z powodu błędów, takich jak:Rozwiązanie
Jedyne, co musisz zrobić, to otworzyć
project.properties
plikandroid-support-v7-appcompat
i zmienić cel ztarget=android-19
natarget=android-21
.Następnie zrób
Project --> Clean...
tak, aby zmiany zaczęły obowiązywać.IntelliJ IDEA (nie używa Gradle)
Podobnie jak w Eclipse nie wystarczy użyć tylko
android-support-v7-appcompat.jar
; musisz zaimportowaćappcompat
jako moduł. Przeczytaj więcej na ten temat na tej stronie StackO-Post (kliknij) .( Uwaga: jeśli używasz tylko
.jar
, uruchomiszNoClassDefFoundErrors
Runtime )Podczas próby zbudowania projektu napotkasz problemy w
res/values-v**
folderach. W oknie wiadomości pojawi się komunikat:Rozwiązanie
Kliknij
appcompat
moduł prawym przyciskiem myszy -> Otwórz ustawienia modułu (F4) -> [Zakładka zależności] Z rozwijanej listy wybierz Android API 21 Platforma -> ZastosujNastępnie po prostu przebuduj projekt (Kompiluj -> Przebuduj projekt) i możesz zacząć.
źródło
Jest to prawdopodobne, ponieważ nie ustawiłeś wartości
compileSdkVersion
21 w pliku build.gradle. Prawdopodobnie chcesz też zmienić swójtargetSdkVersion
na 21.Wymaga to pobrania najnowszych aktualizacji zestawu SDK.
Po pobraniu wszystkich aktualizacji (nie zapomnij również zaktualizować biblioteki / repozytorium pomocy technicznej na Androida!) I zaktualizowaniu swojego compileSdkVersion, ponownie zsynchronizuj projekt Gradle.
Edycja: dla użytkowników Eclipse lub ogólnych użytkowników IntelliJ
Zobacz odpowiedź reVerse. Ma bardzo dokładny spacer!
źródło
`Wykonaj poniższe kroki:
działa dla mnie. Aby rozwiązać ten problem,
1. Kliknij prawym przyciskiem myszy bibliotekę appcompat_v7 i wybierz Właściwości
2. Teraz kliknij opcję Android, Ustaw ścieżkę kompilacji projektu jako Android 5.0 (API poziom 21) Zastosuj zmiany.
3. Teraz przejdź do pliku project.properties w bibliotece appcompat_v7,
4.Ustaw cel projektu jako: target = android-21
5. Teraz Clean + Build biblioteki appcompat_v7 i twoich projektów`
źródło
Jeśli nie chcesz używać interfejsu API 21 jako docelowego interfejsu API, a zatem nie chcesz używać motywu materiałowego, musisz użyć starszej wersji należącej do interfejsu API 19>
Pomaga to również rozwiązać problem, zależy to tylko od tego, co chcesz osiągnąć.
źródło
Napotkałem ten problem z usługami Play: 5.0.89. Aktualizacja do 6.1.11 rozwiązany problem.
źródło
W Android Studio starałem się ustawić
compileSdkVersion
itargetSdkVersion
do19
.Moim rozwiązaniem było zastąpienie na dole
build.gradle
, z tego:Do starszej wersji biblioteki appcompat:
źródło
Dodałem kolejny projekt do mojego obszaru roboczego i próbowałem odwołać się do działania z niego w pliku manifestu i otrzymywałem ten błąd. Problem polega na tym, że niepoprawnie odwoływałem się do biblioteki. W ten sposób naprawiłem problem:
Słoik wszedł do folderu Zależności Androida i ten błąd został naprawiony.
źródło
Upewnij się, że wyczyściłeś swój projekt w Android Studio (lub Eclipse),
To powinno rozwiązać twoje problemy
źródło
Aktualizacja do najnowszej wtyczki gradle rozwiązuje mój problem:
źródło
Po utworzeniu drugiego projektu w obszarze roboczym w środowisku Eclipse miałem ten problem. Wydaje mi się, że to dlatego, że utworzyłem go z inną wersją zestawu SDK, co spowodowało, że napisałem bibliotekę android-support-v7-appcompat.
Próbowałem wszystko wyczyścić, ale bezskutecznie. Ostatecznie powyższa sugestia, aby edytować projekt.properties i zmienić cel = android-21 i ustawić mój projekt na Androida 5.0, naprawiłem go.
źródło
Polecam: (Działa to po wielu dniach z błędami)
-Upewnij się, że pobrałeś:
- Ponownie załaduj ADT
-Zrób kopię bezpieczeństwa swojego projektu.
-Musisz mieć ADT, obszar roboczy i projekt, który zaimportujemy na tym samym dysku (np. C: /)
Teraz usuń aplikację kompatybilną i swój projekt.
W środowisku Eclipse: Plik> Importuj> Istniejący projekt Androida> Dalej> Przeglądaj (folder, w którym masz swój ADT) / sdk / extras / android / v7 / appcompat> Import> Zakończ
Teraz w Eksploratorze pakietów eclipse: android-support-v7-appcompat / libs / Make na dwóch plikach JARS: Kliknij prawym przyciskiem myszy> Ścieżka budowania> Dodaj ścieżkę budowania
Kliknij prawym przyciskiem myszy folder libs / folder> Ścieżka Buil> Konfiguruj ścieżkę kompilacji i sprawdź te dwa pliki JARS> OK
Na górnym pasku zaćmienia> Projekt> Wyczyść
Zaimportuj projekt> Plik> Importuj> Przeglądaj swój projekt> Zakończ
Teraz kliknij prawym przyciskiem myszy plik projektu i android-support-v7-appcompat> Właściwości> Android> I wybierz najnowszy interfejs API, który się pojawi> OK
Kliknij prawym przyciskiem myszy plik projektu> Właściwości> Android> Dodaj> android-support-v7-appcompat
Na górnym pasku zaćmienia> Projekt> Wyczyść
źródło
Ten sam błąd wystąpił po zmianie wersji kompilacji SDK z API: 21 na API: 16. Problemem była wersja appcompat . Jeśli potrzebujesz użyć starszej wersji interfejsu API Androida, musisz również zmienić tę wersję appcompat. W moim przypadku ( dla API: 16 ) musiałem użyć appcompat-v7: 19. + .
Więc zastępuję zależności w build.gradle w następujący sposób,
I upewnij się, że masz starsze wersje aplikacji appcompat w swoim SDK
źródło
Byłem na bieżąco ze wszystkim i wciąż otrzymywałem ten błąd, nie wiem dlaczego, ale myślę, że obraz został uszkodzony w dziwny sposób i po wymianie obrazu pozbyłem się błędu. Może warto spróbować z innym obrazem :)
źródło
Mój problem polegał na tym, że miałem inne biblioteki, do których odwoływał się mój projekt, a do tych bibliotek odwoływała się inna wersja appcompat. Oto, co zrobiłem, aby rozwiązać problem:
(Zanim to zrobisz, wykonaj kopię zapasową projektu)
1) Usunąłem wszystkie foldery układu appcompat (np .: / res / layout-v11).
2) Rozwiązano problemy, które z tego wynikały, zwykle błąd w menu.xml
3) Wróć do głównego projektu i dodaj bibliotekę appcompat, wyczyść i wszystko działa!
źródło