Nie można rozwiązać symbolu „AppCompatActivity”

212

Właśnie próbowałem użyć Android Studio. Stworzyłem pusty projekt i próbowałem utworzyć, Activityktóry się rozszerza AppCompatActivity. Unfortunalty Android Studio „mówi”, że to

Nie można rozwiązać symbolu „AppCompatActivity”

Mam compile "com.android.support:appcompat-v7:22.0.+"na liście zależności mojego modułu „App” i kilka razy przebudowałem projekt. Jednak mogę tylko użyć ActionBarActivity. Co ja robię źle?

Lingviston
źródło
używasz odpowiedniej wersji kompilacji? czy twój SDK jest aktualny?
gaduła
5
@Lingviston nie używasz odpowiedniej wersji. Powinieneś użyćcom.android.support:appcompat-v7:22.1.0
damson
2
Tym razem nie było takiej wersji.
Lingviston
Ale teraz jest i rozwiązuje problem :)
JY2k

Odpowiedzi:

350

Mały dodatek do innych odpowiedzi tutaj, dla każdego, kto ma ten sam błąd podczas korzystania z właściwej wersji lib i odpowiedniej klasy.

Kiedy zaktualizowałem do

appcompat-v7:22.1.0

W którym ActionBarActivityjest przestarzały i pusty i jest właściwą AppCompatActivtydrogą, ze względu na jakąś usterkę w Android Studio, Nie całkiem podniósł się po zmianie wersji.

tzn. mimo że Gradle działał bez błędów, IDE ciągle powtarzało Cannot resolve symbol 'AppCompatActivity'(i nie było również dostępne podczas Ctrl+Nwyszukiwania)

Zajrzałem do .idea/librariesfolderu i zauważyłem, że nie ma odpowiedniego metapliku dla nowej wersji lib.

Tak więc skorzystanie ze starego, niezawodnego pliku-> Unieważnij pamięć podręczną / Uruchom ponownie załatwiło sprawę . Zawsze próbuj tego, gdy czujesz, że coś jest magicznie nie tak z Android Studio. Następnie wyłącz tryb offline i synchronizuj.

Ivan Bartsov
źródło
2
Dla mnie też nie działa, za każdym razem, gdy aktualizuję appcompat, mam wiele problemów.
3c71,
Dla mnie ten błąd pojawił się podczas aktualizacji do Android Studio 2.0 - wyczyszczenie pamięci podręcznej i ponowne uruchomienie, jak wspomniano powyżej, działało idealnie!
ColossalChris
Mam compile 'com.android.support:appcompat-v7:23.3.0'już w swoim build.gradle ... ale nadal
pojawia się
3
Jeśli to nie zadziałało, wypróbuj ten, pracował dla mnie: stackoverflow.com/a/36641765/3758439
George
to samo w IntelliJ IDE.
A-Sharabiani
163

Jeśli metody miękkie za pomocą pliku stopni / „Unieważnij pamięć podręczną” i inne narzędzia IDE nie działają, użyj trudnej metody:

  1. Wyjdź z Android Studio
  2. Przejdź w swoim projekcie do .ideafolderu
  3. Po prostu zmień nazwę librariesfolderu
  4. Uruchom ponownie Android Studio. Powinien teraz ponownie utworzyć librariesfolder i ponownie działać.

To działało dla mnie

Android Studio 3.1.2
Build #AI-173.4720617, built on April 13, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

Shahbaz Ali potwierdził, że działa również na

Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

moujib potwierdził, że działa na Android Studio 3.2.1

DBX12
źródło
Ty dla poprawki! Chciałbym również wiedzieć, czy każdy użytkownik tutaj korzystał z wersji PC lub iOS Studio Android. Mam znajomych programistów, którzy nigdy nie mieli tych problemów na iOS. Miałem mnóstwo problemów na PC. Nie jestem pewien, ile razy próbowałem wyczyścić / odbudować / unieważnić pamięć podręczną ...
Shahbaz Ali i ja używaliśmy wersji Linux, moujib skomentował tylko, że to rozwiązanie działa w wersji 3.2.1
DBX12
70

Dzisiaj (22 kwietnia) możesz korzystać z nowej AppCompatActivitywersji z bibliotekami pomocy technicznej w wersji 22.1.0.

Po prostu zmień swoją zależność:

compile "com.android.support:appcompat-v7:22.1.0"

Tutaj możesz znaleźć więcej informacji o tej nowej klasie.

Gabriele Mariotti
źródło
7
hmm Używam wyższej wersji, ale wciąż compile 'com.android.support:appcompat-v7:23.1.1'
mam
31

To jest zbyt proste. Są kroki, które musisz wykonać

1-Exit studio Android.

2-Idź do katalogu projektu.

3-Coś takiego w moim przypadku (F> Android-> YourProjectName ->. Idea).

4) -Usuń folder bibliotek obecnych w folderze .idea.

5) - uruchom ponownie studio Android. a Twój problem został rozwiązany.

Abdul Mateen
źródło
Nigdy nie usunę folderu, jeśli coś pójdzie nie tak. Wystarczy sama zmiana nazwy. W najgorszym przypadku, gdy folder bibliotek nie zostanie ponownie wygenerowany, możesz wrócić i przywrócić oryginalną nazwę folderu „bibliotek”. Po tym, jak wszystko będzie działać, możesz wrócić i usunąć folder o zmienionej nazwie. Jeśli studio jest uszkodzone, nie może ponownie wygenerować folderów - zawsze zachowaj ostrożność podczas usuwania plików.
28

Naprawiłem go, przechodząc do build.gradlepliku, a w zależności od tego appcompat, coś takiego jak kompilacja'com.android.support:appcompat-v7:XX.X.X'

Zmieniono na kompilację 'com.android.support:appcompat-v7:XX.X.+'

Następnie kliknij Synchronizuj. Wszystkie czerwone linie powinny zniknąć, jeśli wszystko inne w kodzie jest poprawne.

Siddhartha Chikatamalla
źródło
7
+1, OMG, to zadziałało dla mnie. :) BTW, +znak jest dla Hej Gradle, jeśli jakakolwiek nowa wersja tego samego wydania jest dostępna dla ciebie :). Używałem com.android.support:appcompat-v7:25.3.1teraz to nie trick: com.android.support:appcompat-v7:25.3.+chociaż jak daje mi ostrzeżenie: Unikaj korzystania + na numery wersji; może prowadzić do nieprzewidywalnych i niepowtarzalnych kompilacji (com.android.support:appcompat-v7:25.3.+)
fWd82
13

Sprawdź też literówki, zmarnowałem cały dzień na szukanie rozwiązań, kiedy faktycznie wpisałem AppCompactActivity zamiast AppCompatActivity

Victor Michael
źródło
13

Dostałem Cannot resolve symbolbłąd dla AppCompatActivity i wiele innych klas i metod po aktualizacji Android Studio od 2.2.3 do 2.3, aktualizację Androida Gradle plugin do 2.3.0 i aktualizowanie Gradle do 3,3.

File -> Invalidate Caches / Restart nie rozwiązał problemu.

Preferences -> Build, Execution, Deployment -> Gradlepokazał Use local gradle distributionwybrane z domu Gradle: / Aplikacje / Android Studio.app/Contents/gradle/gradle-2.14.1 i wyświetlone ostrzeżenie z informacją, że lokalizacja stopnia jest niepoprawna .

Rozwiązany problem przez wybranie Use default gradle wrapper (recommended).
Prawdopodobnie wystarczyłoby wskazanie nowej lokalnej lokalizacji dystrybucji.

jk7
źródło
11

Nie można rozwiązać problemu z AppCompatActivity.

Wykonaj prosty krok, aby rozwiązać problem.

i) Wyjdź ze studia Android.

ii) Przejdź do katalogu projektu.

iii) Znajdź folder .idea w katalogu projektu.

iv) Usuń folder .idea .

v) Uruchom ponownie studio Android.

vi) Problem zostanie rozwiązany.

Sathish Kumar TM
źródło
Jeśli wejdziesz do folderu .idea i zmienisz nazwę folderu „bibliotek” na coś innego, sztuczka również działa. Jeśli coś pójdzie strasznie źle, musisz tylko cofnąć się i zmienić nazwę folderu bibliotek na pierwotną nazwę i spróbować czegoś innego, zamiast próbować przywrócić cały folder .idea.
8

Spróbuj tego. W Android Studio po umieszczeniu zależności w build.gradle. Przejdź do kompilacji -> czysty projekt.

To zadziałało dla mnie.

MobileAppDeveloper
źródło
7

To naprawdę szalone, próbowałem wszystkiego, zsynchronizowałem z plikami Gradle, unieważniłem i uruchomiłem ponownie studio Android. Problem nadal występował. Ostatnim rozwiązaniem było usunięcie folderu .idea / libraries i działało to jako urok.

Raghav Sharma
źródło
6

Możesz użyć nowego AppCompatActivity appcompat-v7: 22.1. + Po prostu dodaj to do swojej oceny:

skompiluj „com.android.support:appcompat-v7:22.1.1”

Siergiej Zabelnikow
źródło
6

Dla mnie problem został rozwiązany, gdy zaktualizowałem appcompact v7 do najnowszej wersji.

skompiluj „com.android.support:appcompat-v7:25.3.0”

Mam nadzieję, że to pomoże...:)

Nihas Nizar
źródło
6

Więc mój kolega popchnął ich, local.propertiesktórzy wszystko złamali. Skopiowałem ścieżkę SDK z innej aplikacji i zrobiłem:

File -> Sync Project with Gradle Files
Labraks77
źródło
5

Ten sam problem występował w pakiecie Android SDK 23 podczas programowania na komputerze Mac OS X Yosemite. Okazało się, że nie mam Java SDK 7.

Kiedy zainstalowałem Java SDK 7 i skierowałem SDK z Android Studio na nowy SDK, wszystko działało dla mnie.

Oto kroki, które wykonałem:

1) Zamknij system Android SDK

2) Zainstaluj Java SDK dla Mac OS X z http://www.oracle.com/technetwork/java/javase/downloads/index.html

3) Uruchom zestaw SDK systemu Android i wskaż zestaw SDK dla tego projektu na nowy pakiet 1.7 Java SDK, przechodząc do opcji Plik -> Struktura projektu -> Lokalizacja JDK

4) Uruchom ponownie Android Studio

Mam nadzieję, że to pomoże

AsgharHussain
źródło
3

Pamiętaj, aby nacisnąć Alt+ Enterlub dodać import.

import android.support.v7.app.AppCompatActivity; 
Suragch
źródło
3

żadne z poniższych nie rozwiązało mojego problemu

  • Uruchom ponownie Androida
  • Plik >> Synchronizuj projekt z plikami stopniowymi
  • Zbuduj >> Clean Project
  • Zbuduj >> Przebuduj projekt
  • Plik >> Unieważnij pamięć podręczną / uruchom ponownie

Zamiast tego rozwiązałem go, aktualizując wersję zależności appcompat i projektu do najnowszej wersji Aby to zrobić: przejdź do sekcji build.grade (moduł: aplikacja) >> zależności, a następnie naciśnij ALT + ENTER na obu zależności appcompat i projektu, a następnie wybierz pokazana wersja w moim przypadku to 24.2.1, jak pokazano na zdjęciu wprowadź opis zdjęcia tutaj

Zain
źródło
3

Zaktualizowałem Gradle 2.3.3 do 4.4 i dostałem błąd w AppCompatActivity, a także Cardview. Próbowałem z czystym projektem i przebudować projekt. To nie zadziała, a następnie przejdę do folderu projektu -> .idea -> utwórz kopię zapasową folderu bibliotek i usuń go -> następnie Odbuduj projekt, który rozwiązał mój problem.

manojm
źródło
3

Zacznijmy krok po kroku: pierwszy czysty projekt za pomocą

Build-> Clean

jeśli to nie pomoże, skorzystaj z drugiego kroku

Plik> Unieważnij pamięć podręczną / Uruchom ponownie ...

Ale prawdziwy problem zaczyna się, gdy wszystkie powyższe opcje nie działają, więc najlepszym rozwiązaniem jest zamknięcie projektu i przejście do katalogu lokalizacji projektu i usunięcie

.pomysł

Możesz teraz ponownie otworzyć swój projekt.

Shashank Chandak
źródło
2

Po aktualizacji do najnowszej biblioteki wsparcia musiałem dokonać aktualizacji do najnowszej wersji Android Studio (beta) i wersji stopniowej, zanim IDE rozpoznało AppCompatActivity ponownie (unieważnienie pamięci podręcznej i ponowne uruchomienie nie załatwiło problemu)

Ciske Boekelo
źródło
2

Dodaj tę zależność w .gradle kompilacji projektu.

Postępuj zgodnie z poniższym przykładem.

dependencies {

    compile 'com.android.support:appcompat-v7:22.1.0'
}
Ostry ból
źródło
Używam :22.0.0i nie mogę znaleźć AppCompatActivityklasy. Muszę to ustawić przynajmniej na 22.1.0. Dzięki.
haxpor
2

Easist Way

  • Otwórz poziom aplikacji build.gradlei usuń zależność i synchronizację appcompact-v7 .
  • Dodaj zależność ponownie i synchronizuj.

Błąd zniknął!

Przed

przed

Po

po

Khemraj
źródło
2

Po dodaniu obsługi AndroidX w pliku Gradle.properties np

android.useAndroidX=true
android.enableJetifier=true

Jeśli używasz wersji Gradle większej niż 3.2, konwencjonalna zależność Appcompat np

implementation 'com.android.support:appcompat-v7:27.1.1

nie zadziała. Zamień tę zależność na:

implementation 'androidx.appcompat:appcompat:1.1.0'

Ponadto zmień import AppCompatActivity w pliku klasy z tego:

import android.support.v7.app.AppCompatActivity;

do tego:

import androidx.appcompat.app.AppCompatActivity;

Gotowe

Muhammad Etisam
źródło
1

Musisz tylko wprowadzić zmiany w pliku aplikacji Gradle, dodając pewne zależności

skompiluj „com.android.support:appcompat-v7:XX:YY:ZZ”

podczas gdy XX: YY: ZZ to kod wersji, którego używasz w pliku oceny, w przeciwnym razie, jeśli ustawisz tę wersję na niższą lub wyższą niż ta, z której korzystasz, Twoja aplikacja napotka pewne problemy, np. czasami się zawiesi

Nadeem Bhat
źródło
1

właśnie zaktualizowałem moje studio Android z wersji 2.3.2 do wersji 3.1.2. i ten błąd występuje.

I clean projektu, odbudować projekt, unieważnić pamięć podręczną / restart, ale nic nie działa.

Rozwiązuję ten błąd, aktualizując bibliotekę appcompat z

skompiluj „com.android.support:appcompat-v7:23.4.0”

do

kompiluj „com.android.support:appcompat-v7:25.1.1”

w pliku build.gradle aplikacji.

mehmoodnisar125
źródło
1

Jeśli unieważnienie pamięci podręcznej nie pomaga, po prostu zamknij projekt, a następnie otwórz go ponownie. Kroki:

  • Plik> Zamknij projekt
  • Usuń projekt z początkowej listy projektów
  • Zamknij Android Studio
  • Otwórz Android Studio
  • Otwórz istniał Projekt z tym projektem
Nguyen Minh Hien
źródło
0

Dla mnie problem został rozwiązany po zaktualizowaniu wersji kompilacji Gradle. Nie wiesz dlaczego?

Srikar Reddy
źródło
0

Powiem ci, jak rozwiązałem ten problem zaćmieniem. Pobierz plik zip z tego linku. https://github.com/dandar3/android-support-v7-appcompat następnie wyodrębnij ten plik, otwórz projekt, w folderze lib zobaczysz jeden plik jar o nazwie „android-support-v7-appcompat”, dodaj ten plik jar do Twój projekt. Otóż ​​to.wprowadź opis zdjęcia tutaj

Danisz Shärma
źródło
0

Może to być różnica wersji w poziomie aplikacji, sprawdź to raz, a następnie przebuduj

Kamal
źródło
0

Dla mnie nie zadziałało żadne z rozwiązań. Ale dowiedziałem się, że w bibliotekach zewnętrznych brakuje wszystkich bibliotek bibliotek pomocniczych. W innych projektach AppCompatActivity zostało rozwiązane bez problemów.

Dla mnie udało się stworzyć nowy projekt i skopiować wszystkie elementy ze starego folderu src do nowego projektu.

Nie wiem dokładnie, dlaczego, ale jeśli nic nie działa, może to być ostatnia możliwość. Tylko jeśli ktoś ma takie same problemy jak ja.

użytkownik7174483
źródło
0

Próbując miękkich sposobów, w jaki to nie zadziała, użyj twardej metody: Wyjdź z bieżącego ekranu Android Studio i przejdź do projektu do folderu .idea Zmień nazwę bibliotek-> folder lib_pre.

Zrestartuj Android Studio. Teraz ponownie utworzy folder bibliotek i będzie działał płynnie. Android Studio 3.1.3

Nadeem Bhat
źródło