Android Studio nagle nie może rozwiązać symboli


207

Android Studio 0.4.2 działało dobrze i dzisiaj go otworzyłem i prawie wszystko było czerwone, a automatyczne uzupełnianie przestało działać. Patrzę na import, a AS wydaje się mówić mi, że nie może nagle znaleźć android.support.v4 (oferując mi opcję usunięcia nieużywanego importu). ( Android.support.v7 wydaje się być w porządku).

Rzeczy, których próbowałem:

  • Przebudowa projektu
  • Czyszczenie projektu
  • Synchronizacja z plikami Gradle
  • Zamknięcie projektu, zamknięcie AS i ponowne uruchomienie / ponowne otwarcie
  • Plik> Unieważnij pamięć podręczną / Uruchom ponownie
  • Badając Lint, nie widziałem nic oczywistego
  • Podwójne sprawdzanie, czy wszystkie biblioteki pomocy są aktualne w menedżerze SDK
  • Sprawdzam mój Build.gradle, chociaż bez zmian i jest taki sam jak zwykle, tak jak cały czas działał.

Oto przypadek, w którym jest to istotne:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.android.support:gridlayout-v7:19.0.0'
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile project(':libraries:facebook')
    compile files('libs/core.jar')
}

Gdy kliknę „Synchronizuj z gradem” i otworzę „Ustawienia projektu”, pojawia się czerwony błąd informujący, że mam zduplikowane odwołania do bibliotek i usuwam nieużywane. wprowadź opis zdjęcia tutaj

Mój projekt się kompiluje i działa dobrze, ale naprawdę potrzebuję działania autouzupełniania !! Czy ktoś ma jakieś sugestie?

wprowadź opis zdjęcia tutaj


66
Każda aktualizacja Android Studio psuje projekty, mam już tego dość. Dlaczego nie mogą się zatrzymać i wydać użytecznej wersji.
Konrad Morawski

3
Przed czyszczeniem lub usunięciem dowolnego pliku przeczytaj najpierw tę odpowiedź. To może rozwiązać twój problem. stackoverflow.com/a/19223269/513413
Hesam

16
„Nieprawidłowa pamięć podręczna / restart” działała dla mnie.
Eagle_Eye,

1
Miałem ten sam problem i rozwiązano problem z odpowiedzią na ten post SO stackoverflow.com/a/30828772/1550233
johnw182 18.10.15

zaakceptuj tę odpowiedź, aby użytkownicy nie usunęli niczego ręcznie stackoverflow.com/a/22901534/7767664
user924

Odpowiedzi:


238

Zrobiłeś już listę większości rzeczy, które byłyby pomocne, ale możesz spróbować:

  • Wyjdź z Android Studio
  • Utwórz kopię zapasową projektu
  • Usuń wszystkie pliki .iml i folder .idea
  • Uruchom ponownie Android Studio i ponownie zaimportuj swój projekt

Nawiasem mówiąc, komunikaty o błędach wyświetlane w oknie dialogowym Struktura projektu są w większości fałszywe.

AKTUALIZACJA:

Android Studio 0.4.3 jest dostępny w kanale aktualizacji kanarek i mam nadzieję, że powinien rozwiązać większość z tych problemów. Mogą występować pewne problemy z utrzymaniem się; jeśli zobaczysz je w 0.4.3, daj nam znać i postaraj się dać nam niezawodny zestaw kroków do odtworzenia, abyśmy mogli upewnić się, że zadbaliśmy o wszystkie ścieżki kodu.


3
To zadziałało dla mnie. Szaleję za tym, cały dzień próbowania tego rozgryźć! Dziękuję za odpowiedź.
Patrick Kafka

25
Dla mnie wystarczyło usunąć folder bibliotek w .idea i projekt synchronizacji prasy z gradle.
Gabriel Ittner,

2
Mam ten sam problem z 0.8.9 i bez powodzenia wypróbowałem wszystkie wymienione tutaj rozwiązania :(
Rémy DAVID

3
Nie działało dla mnie w AndroidStudio 1.2 RC. To jest koszmar.
RED_

7
Dzieje się tak nadal w 2018 r., A Twoja odpowiedź była pomocna. Chciałbym, żeby to zostało naprawione ... Zdarzyło się w AS 3.1.1.
Demogorii

302

Żadna z wyżej wymienionych rzeczy nie działała dla mnie. Ale potem znalazłem tę pozycję menu w menu plikówInvalidate Caches/Restart który wydaje się rozwiązać problem.

Naprawdę nie wiem, co się stało w tle, ale kiedy Android Studio uruchomiło się ponownie, pasek stanu powiedział Indexing... przez minutę, co najwyraźniej czyniło cuda.

Dla porównania używam Androida Studio 0.5.4.


2
Pracowałem dla mnie w wersji 0.5.9
Ojciec Stack

19
Dla mnie miałem awarię zasilania, gdy ładowały się studia Android 0.8.2 i nie rozpoznaje żadnego z moich importów Java i wszystko było po prostu czerwone. To zadziałało dla mnie, dzięki!
Simon,

2
Korzystam z Androida Studio 1.0.2, kiedy otworzyłem swój projekt, byłem pełen czerwonych błędów. rozwiązałem to przez studio Android -> plik -> unieważnij pamięć podręczną / uruchom ponownie. po ponownym uruchomieniu projektu zadziałało .. brak czerwonych błędów
SoftEye

4
Android Studio 1.1.0. Miałem także awarię zasilania i to załatwiło sprawę.
Phito

2
To powinna być poprawna odpowiedź. Potwierdziłem to za pomocą Androida Studio 1.4 final.
Davideas

58

Przejdź przez link i to zadziałało dla mnie.

1.) Wybierz opcję Plik z menu po lewej górnej stronie studia Android.

2.) Wybierz opcję: „Invalidate Cache / Restart ..” Otworzy się okno dialogowe.

3.) Kliknij pierwszy przycisk z opcją: „Unieważnij i uruchom ponownie”

4.) Zamknie studio i uruchomi je ponownie. Rozpocznij indeksowanie projektu.

Rozwiązało to mój problem:

Plik -> Unieważnij pamięć podręczną / Uruchom ponownie -> Unieważnij i uruchom ponownie

Źródło: https://www.youtube.com/watch?v=FX_gCTpqhwM



Pracowałem dla mnie w Android Studio 3.5.3
flawyte

13

Android Studio 1.3

  1. Otwórz Ustawienia modułu
  2. Kliknij moduł w menu Moduły
  3. Na karcie właściwości ustaw Zgodność źródła i Zgodność docelową na wersję Java.

Nic więcej nie zrobiłem i zadziałało to dla mnie.


Gdzie mogę znaleźć ustawienia modułu?
bendaf

3
@bendaf Kliknij prawym przyciskiem myszy moduł w eksploratorze i wybierz „Otwórz ustawienia modułu”
Jason Robinson

Te ustawienia można również znaleźć w Plik -> Struktura projektu -> Właściwości
ChumiestBucket

10

Dla mnie był to wpis kompilacji „progaurd” w moim build.gradle. Usunąłem całą sekcję kompilacji, a następnie ponownie zsynchronizowałem i problem został rozwiązany.


Pracował dla mnie! Dzięki! Używanie kanarowej wersji 1.0RC 1. Używanie minifyEnabled truelub minifyEnabled falsebrak definiowania proguardFiles.
Kalem,

Nie zapominaj również, że projekty AndroidLibrary nie uruchamiają proguard stackoverflow.com/a/10992604/665823 .
Kalem,

4

Korzystam z Androida Studio 3.1.4 i miałem taki problem podczas przechodzenia z mojej gałęzi programistycznej z niższym docelowym interfejsem API do innej gałęzi z docelowym interfejsem API Oreo. Wypróbowałem pierwsze rozwiązanie, które zadziałało, ale jest dość trudne, a drugie rozwiązanie nie rozwiązało problemu.

Moje rozwiązanie Gdy problem pojawił się ponownie, próbowałem nieznacznie zmodyfikować plik oceny aplikacji na tyle, aby AS poprosił mnie o synchronizację plików, i to załatwiło sprawę. Następnie usunąłem zmianę.

Wydaje mi się, że „Synchronizacja projektu z plikami Gradle” może również działać, ale sam tego nie próbowałem

Mam nadzieję, że to pomoże


3

Istnieje znacznie łatwiejsze rozwiązanie wbudowane w Android Studio i zwykle działa dla mnie bez potrzeby użycia brutalnej siły wymienionej w innych odpowiedziach - więc powinieneś spróbować najpierw: wprowadź opis zdjęcia tutaj

kliknij symbol „gradle” po prawej stronie Android Studio, a następnie narzędzie „Odśwież wszystkie projekty Gradle”.


2

Myślałem, że też to tam wyrzucę:

rzeczą, która działała dla mnie, była zmiana mojego wariantu kompilacji z powrotem na wariant, który działał wcześniej. Z jakiegoś powodu zmieniłem to wcześniej (i zapomniałem dlaczego).

tak czy inaczej, najlepiej jest zapamiętać, co zmieniłeś tego dnia (może to być coś tak drobnego jak czyszczenie lub powrót do poprzedniego git commit) ... itd.

pomaga także spróbować ponownie zsynchronizować grad i wymusić odbudowę.


1

Przez kilka godzin zmagałem się z tym samym problemem. Wygląda na to, że zbudowanie mojego projektu z wiersza poleceń załatwiło sprawę.

Dokładne kroki -

  1. Sklonowane świeże repozytorium (żadne pliki studyjne Androida nie są w repo)
  2. Zbudowany projekt debugowania z wiersza poleceń (./gradlew clean assembleDebug)
  3. Otwórz Android Studio, zaimportuj projekt

Aby sprawdzić, czy to zadziałało, sprawdź w folderze pakietów rozstrzelonych projektów, sprawdź bibliotekę i znajdź klas.jar. Jeśli można ją rozbudowywać, wszystko będzie dobrze.

edycja - znalazłem po wyczyszczeniu w studiu Androida, znowu się zepsuł. Więc jeśli musisz wyczyścić, musisz powtórzyć ten proces.


nie wiem, na czym polegał problem, ale stopniowanie czystego montażu Debug działa i wszystko jest na razie w porządku
Killer

1

Żadna z tych metod nie pomogła mi w Android Studio 0.5.8.

Moim rozwiązaniem było usunięcie katalogu ~ / .AndroidStudioPreview (w Ubuntu). Niestety nie mam pojęcia, gdzie to jest w innym systemie operacyjnym. W tym katalogu są przechowywane pliki tymczasowe i ustawienia Android Studio, więc nie zauważyłem wszystkich moich ustawień. Ale to działa!


Pracowałem też dla mnie. (Android Studio 0.6.0 na elementarnym systemie operacyjnym)
rogeriolino

1

Innym sposobem jest pobranie JDK 1.7 i zmiana ścieżki z Android Studio w komunikacie o błędzie .. i wybranie folderu domowego znajdującego się w folderze Jdk 1.7


1

Mam dzisiaj ten sam problem. Naprawiono to, zmieniając lokalizację jdk w strukturze projektu z \java\jdk1.7.0_05na\java\jdk1.7.0_25 (o której istnieniu nie wiedziałem do tej pory).

Używam Androida Studio 0.8.6.



1

Próbowałem wyczyścić projekt, a następnie unieważnić pamięć podręczną, ale żaden z nich nie zadziałał. To, co zadziałało, to skomentowanie wszystkich moich zależności w build.gradle (aplikacja), a następnie synchronizacja, a następnie usunięcie komentarzy z zależności i ponowne zsynchronizowanie. Bob jest Twoim wujkiem.


0

Napotkałem podobny problem, ale w moim przypadku wykonałem następujące kroki:

1) Projekt .inside w folderze .idea otwórz moduły.xml. 2) .Sprawdź, czy istnieją dwa wpisy dla tego samego pliku IML. 3) .Usuń jeden ze zduplikowanych wpisów i zamknij studio Android lub ponownie skompiluj plik stopni.

W moim przypadku zadziałało. Mam nadzieję, że to pomoże


0

Rozwiązałem to, ustawiając JDK. Dostałem wyskakujące okienko z informacją, że Instalator JDK, kiedy umieściłem mysz nad błędem.


0

Miałem ten sam problem, żadne z wymienionych tutaj rozwiązań nie zadziałało. Problemem były moje pliki źródłowe, które nie znajdowały się w odpowiednim folderze.

Struktura katalogów MUSI być:

[project]\[module]\src\main\java\[yourpackage]\[yourclass.java]


0

W końcu zorientowałem się, co powoduje ten problem.

Właściwie powinieneś unikać pchania .idea/librariesfolderu do swojego repozytorium. Tworzy dziwne rzeczy w Android Studio, które mają tendencję do usuwania wszystkich pobranych bibliotek.

Jeśli masz historię zatwierdzeń, po prostu odtwórz wszystkie brakujące pliki bibliotek i unikaj ich ponownego zatwierdzania. W przeciwnym razie wystarczy usunąć cały .ideafolder i ponownie zaimportować go do AS.


0

spróbuj zmienić swój build.gradle o następującej wartości:

android {compileSdkVersion 18 buildToolsVersion '21 .0.1 '

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 18
}

0

Używam wspólnych preferencji, ale Android Studio narzekało na symbol edytora. Potem dodałem

import android.content.SharedPreferences.Editor;

i symbol jest teraz fajny.


0

Sprawdź, czy masz ścieżkę projektu, która zawiera znaki specjalne, takie jak! (wykrzyknik).

W podobnym problemie, z jakim się spotkałem , była to główna przyczyna - ponieważ wiele aplikacji Java wydaje się nie tolerować takich znaków specjalnych (np. Wykonanie „gradlew clean” z terminala nie powiedzie się i spowoduje wygenerowanie wyjątku RunTimeException). Żadne z innych rozwiązań opublikowanych online nie pomogło mi. Ale kiedy już usunąłem! ze ścieżki i zrobił czystą kompilację, Android Studio działało magicznie.


0

Próbowałem wszystkiego wymienionego tutaj. Następnie sprawdziłem mój androidmanifest.xml. Miałem trochę niedopasowane niedopasowanie z powodu zmian nazw folderów i nazw pakietów.


0

W moim projekcie wielomodułowym problem polegał na tym, że wersja „com.android.support:appcompat-v7” w module A miała „22.0.0”, ale w B - „22.2.0”.

Rozwiązanie : upewnij się, że
1. wersja wspólnych bibliotek jest taka sama wśród modułów.
2. Każdy moduł kompiluje się bez błędów (spróbuj zbudować każdy z nich z CLI).


0

Pamiętaj, że nazwy plików i specjalnie folderów mogą powodować ten błąd. Na przykład, jeśli masz folder „Pomocnicy”, a pakiet plików w tym folderze to „com.whokolwiek.helpers”, nie spowoduje to żadnego błędu kompilacji, ale spowoduje, że studio Android nie załaduje symboli w tym folderze . Jednym z typowych powodów jest to, że gdy nazywasz folder z pierwszą wielką literą, zatwierdzasz go w Git, a później zmieniasz nazwę folderu na małe litery. System Git nie rozpozna zmiany, co spowoduje rozbieżność między repozytoriami lokalnymi i zdalnymi, na które wpływ będą miały tylko nowe klony repozytoriów.



0

Miałem znacznie dziwniejsze rozwiązanie. Jeśli ktoś na to wpadnie, warto dokładnie sprawdzić plik oceny. Okazuje się, że kiedy klonowałem ten git i gradn runnning, usunąłem jedną linię z mojego pliku build.gradle (aplikacji).

dependencies {
     provided files(providedFiles)

Oczywiście problemem było po prostu dodanie go z powrotem i ponowna synchronizacja z gradle.


0

Miałem podobny problem, kiedy przebudowałem plik AAR i zastąpiłem starszy w moim projekcie nowym. Przejrzałem wszystkie rozwiązania tutaj i żadne nie rozwiązało mojego problemu. Później zdałem sobie sprawę, że minifyEnabled ustawiono na true w projekcie bibliotecznym, który skutecznie usunął wiele martwych kodów, które nie były używane w projekcie bibliotecznym.

Moim rozwiązaniem było ustawienie minifyEnabled na false w projekcie biblioteki, złożenie aar, skopiowanie go do mojego projektu, unieważnienie pamięci podręcznej i zsynchronizowanie projektu oceny i wszystko działało dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.