„Nie można rozwiązać symbolu R” w Android Studio

715

W każdym przypadku we wszystkich moich klasach, do których się odwołuję R.id.something, Rjest on czerwony i mówi „nie można rozwiązać symbolu R”. Również za każdym razem R.layout.somethingjest podkreślony na czerwono i mówi „nie można rozwiązać metody setContentView (?)”. Projekt zawsze dobrze się układa. Ciągle to denerwuje. Przeczytałem tutaj wiele innych pytań na temat podobnego, ale najbardziej wymagającego importu projektów z Eclipse. Korzystam z najnowszej wersji Androida Studio, która według mnie jest projektem. Projekt został utworzony w Android Studio i działał bez problemów „nie można rozwiązać R.”. Chciałbym wiedzieć, co to powoduje, jeśli ktoś wie.

ez4nick
źródło
w przeszłości otrzymywałem błędy XML, takie jak: pasek postępu nie może zostać przesłany do android.widget.textview, i naprawiłem to, zmieniając tylko nazwę widoku tekstowego. Nadal nie wiem, co spowodowało błąd.
ez4nick
Jeśli zmieniłeś nazwę, być może próbujesz teraz użyć odwołania do ciągu, które nie istnieje w pliku res / strings.xml?
Gałka oczna
2
szukałem wiele razy, zanim zadałem to pytanie, i znalazłem wiele podobnych pytań, w tym jedno, o którym wspomniałeś. Przeczytałem sugestię w tym pytaniu i nie ma importu Android.R w żadnym z moich plików Java.
ez4nick
2
Hej wszystkim, o których zapomniałem zadawać to pytanie, ponieważ zadawano je tak dawno temu. Rok temu powinnam była przyjąć własną odpowiedź, która jest teraz komentarzem powyżej. Problem polegał na tym, że studio Android było w tak wczesnej fazie i jako nowy programista nigdy nie powinienem był go używać. Zapewniamy, że wszystko działa teraz dobrze i już tak było. Jeśli to możliwe, cofnij usunięcie oryginalnej odpowiedzi, aby ją zaakceptować.
ez4nick
3
Nie znaleziono R to nie błąd, to błąd spowodowany błędem kompilacji Napraw pozostałe błędy i wszystko powinno być w porządku.
Just_someone

Odpowiedzi:

720

Też miałem ten problem. Prosty „gradlew clean” i „gradlew build” załatwiły sprawę.


Kliknij Build-> Clean Project , który wykona czyszczenie stopnia

Vipassana Vijayarangan
źródło
56
czasami trzeba też ponownie uruchomić studio Android. a przynajmniej dla mnie.
Użytkownik Foo Bar
24
Dla tych, którzy konwulsują przy użyciu wiersza poleceń, kliknij Build-> Clean Project, a to wykona „gradlew clean”. ;)
Pan Concolato
22
Bez powodzenia ... Odbudowa czyszczenia nie działa ode mnie
CandleCoder
7
jeśli czyste, przebuduj, unieważnij cache-restart nie rozwiąże, przejdź do: import package.R;
Sudip Bhandari
2
Dla mnie to spowodowało problem: Niedopasowanie między ApplicationId w gradle i nazwa pakietu w manifestie (i chociaż automatyczny import dodał niewłaściwy adres dla pliku R.) Polecam ten mały artykuł, aby wyjaśnić różnicę między nimi. blog.stylingandroid.com/package-name-vs-application-id
Tina
227

W najnowszych wersjach Android Studio, przynajmniej dla mnie, działają:

„Narzędzia” -> „Android” -> „Synchronizuj projekt z plikami stopniowymi”

W najnowszym Android Studio 3.1.3 (lipiec 2018 r.) „Synchronizacja projektu z plikami stopniowymi” jest dostępna na pasku menu głównego.

wprowadź opis zdjęcia tutaj

Tom C.
źródło
Z jakiej wersji Android Studio korzystałeś wtedy?
Joel Handwell
Nie działa dla mnie (Android Studio 0.8.14). Ale kompilacja> Czysty projekt działa dobrze.
Phat H. VU,
Nadal działa w systemie Android 1.2.1. Pamiętaj, aby zrobić to więcej niż raz, jeśli nie zadziała po raz pierwszy.
noob
To jedyna rzecz, która działała dla mnie. Najpierw wypróbowałem wszystkie inne rozwiązania.
Mac
1
W Android Studio 3.1.1 ta opcja znajduje się w menu Plik -> Synchronizuj projekt z plikami
stopniowymi
155

Korzystałem z klasy 3.3.0. To był główny winowajca. Zmarnowałem 6,50 godziny z mojego życia. Gradle 3.2.1 usunął błąd.

classpath 'com.android.tools.build:gradle:3.2.1'

Problem rozwiązany po zmianie wersji stopniowej. Szczegóły historii można znaleźć tutaj .

Tushar Monirul
źródło
9
Kolejny niesamowity wyczyn twórców studio Android. Powrót do poprzedniej wersji 3.2.1był w rzeczywistości jedynym rozwiązaniem, które zadziałało dla mnie ...
Vucko,
1
Zadziwiająco nadal problem 2 miesiące później. Najnowsza wersja (3.3.2) tego nie naprawiła, tak jak w 3.2.1.
JakeSteam
Zamiast wracać do wersji 3.2.1, możesz także zaktualizować Android Studio do wersji 3.3. Zobacz moją odpowiedź tutaj
arne.z
zadziałało, zmieniając 3.3.0 na 3.2.1, ale moje pytanie działało dobrze na 3.3.0. Miałem właśnie refaktoryzację i zaktualizowałem plik XML manifestu i plik gradle i zsynchronizowałem grad. Czy mogę wiedzieć, co może być przyczyną
nieoficjalna obsługa
25 godzin internetu i wygląda na to, że to jedyne działające rozwiązanie. Dzięki Android studio: (....
Nahabwe Edwin
108

Mam podobny problem i oto co zrobiłem:

Wyczyść projekt i zsynchronizuj projekt z Gradle,

wprowadź opis zdjęcia tutaj

sprawdź wersję buildTools w moim SDK wprowadź opis zdjęcia tutaj

Z poziomu kompilacji (modułu) zmień minSdkVersion z 8 na 9

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Ale to wszystko nie pomogło.

W końcu znalazłem odpowiedź (to zadziałało w moim przypadku)

Zmień z build.gradle (moduł: aplikacja)

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

Lub

Wybierz Plik | Zmiana struktury projektu Zbuduj wersję narzędzia do 21.1.1

wprowadź opis zdjęcia tutaj

Mina Fawzy
źródło
To też działało dla mnie, zmieniając kompilacje i konfigurując pliki stopni (modułów)
Samuele Bolognini,
Dziękuję, tak jak mądrze, to było rozwiązanie.
App Dev Guy
58
  1. Sprawdź swoje pliki XML.
  2. Clean Project.

To jest to.

Na przykład miałem wpis w moim strings.xml:

<string name="A">Some text</string>

I activity_main.xmlużyłem tego wpisu

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

Podczas pracy z projektem usunąłem to

 <string name="A">Some text</string>

I w konsekwencji activity_main.xmlstał się nieważny. W rezultacie: nie można rozwiązać R.

Sprawdź swoje *.xmlpliki i wyczyść projekt.

Jurij
źródło
To naprawdę uratowało mi życie [PLUS ONE]
GingerHead
Brak obrazu, o którym mowa w jednym z moich plików XML, spowodował ten problem. Umieść obraz w folderze, wyczyść, a R jest teraz ponownie szczęśliwy.
Casey Murray,
Przez przypadek zdefiniowałem mój ciąg dwukrotnie w strings.xml. Studio w ogóle tego nie pokazało. X- (Dziękuję za odpowiedź.
codingjeremy
To jest dla innych programistów czytających. To samo podejście powinno rozwiązać problem, tak jak dla mnie.
Paramvir Singh Karwal
6
Dlaczego nie ma opinii, aby podkreślić złe pliki XML w IDE?
Fuhrmanator,
53

Jeśli zobaczysz ten błąd po przeniesieniu plików Java lub katalogów do innych lokalizacji, możesz zagwarantować, że Android Studio się pomylił. I zgadnij co? cofnięcie tych działań nie rozwiązuje problemu.

Więc próbujesz wyczyścić, ale to nie działa.

Ponowne uruchomienie również nie działa.

Ale spróbuj File -> Invalidate Caches / Restart ... -> Invalidate and Restart

Android Studio przechowuje informacje o tym, które pliki są zależne od innych plików. A ponieważ przenoszenie plików nie jest poprawnie realizowane, przenoszenie plików powoduje błędy. I to nie wszystko: pamięci podręczne tych zależności są używane w celu przyspieszenia kompilacji.

Oznacza to, że nie tylko musisz zrestartować, ale musisz unieważnić te pamięci podręczne, aby przywrócić (lub, dokładniej, odbudować) zdrowie psychiczne.

Scott Biggs
źródło
Nie pomogło. Próbowałem też czyszczenia / przebudowy. Wystąpił błąd po przeniesieniu pakietu Java do innego pakietu. Co ciekawe, w jednym pakiecie można uzyskać dostęp do klasy R, ale nie można uzyskać do niego dostępu w pakiecie, który przeniosłem.
pobłogosław
W nowszych wersjach Android Studio, Unieważnij i Uruchom ponownie są teraz domyślnym wyborem menu. To powinno pomóc przynajmniej kilku osobom. (Szkoda, że ​​nie naprawiają wszystkich szalonych błędów, które powodują ten błąd!)
Scott Biggs
1
Ten błąd wystąpił po przeniesieniu i zmianie nazwy projektu. To rozwiązało problem R po tym, jak wszystkie czyszczenie i ponowne uruchomienie nie. Dziękuję Ci.
FrankKrumnow
2
Zajmuje to mniej więcej tyle samo czasu, co zrobienie filiżanki kawy - która z kolei może być wykorzystana do wzięcia przyjemnego prysznica z kawą, jeśli nadal oznacza R na czerwono ... ヽ (´ ー `) ノ
ZooMagic
1
znalazłem gif dla mojego poprzedniego komentarza -> tenor.com/view/…
ZooMagic,
30

Myślę, że jeśli umieścisz pliki działań w innym folderze niż domyślny. Musisz zaimportować com.example.yourproject.R(to RNIE Android.Rplik projektu NIE plik) do WSZYSTKICH działań za pomocą R. Na przykład w MainActivitypliku wstaw następujący wiersz:

import com.example.yourproject.R;
ninjahoahong
źródło
1
Ach, i nadal będzie komunikat o błędzie przed pierwszą kompilacją. Jednak po prostu naciśnij build, Android Studio wygeneruje plik R i kompilacja powinna zakończyć się powodzeniem.
ninjahoahong
i myślę, że lepiej jest po poprawce wyczyścić projekt, a następnie skompilować. lub naciśnij Shift + F9, aby debugować z urządzeniem lub emulatorem. Wolę debugować na prawdziwym urządzeniu.
ninjahoahong
To najlepsze rozwiązanie. Dzięki koleś
Arundev
ta odpowiedź była magiczną różdżką. dzięki
leeCoder
28

Wydaje się, że istnieje wiele przyczyn tego problemu. Ostatnio dodałem aktywność do testowania o nazwie NewActivity. To utworzyło plik o nazwie res/menu/new.xmli gradle nie podobała się ta nazwa, ponieważ new jest słowem zastrzeżonym.

gradlew clean

lub

"Tools" -> "Android" -> "Sync Project with Gradle Files"

Są to zdecydowanie dobre rzeczy do wypróbowania, ale możesz mieć inne problemy, które musisz rozwiązać przed uruchomieniem tych poleceń.

chawkinsuf
źródło
dzięki też dla mnie działało. Małe pytanie - gdzie powinienem wpisać gradlew clean, jeśli chcę to zrobić w ten sposób (zrobiłem „Narzędzia” -> „Android” -> „Synchronizuj projekt z plikami Gradle”)?
Sergii
Otwórz terminal poleceń, przejdź do katalogu projektu i uruchom „./gradlew clean”
chawkinsuf
Tak było dla mnie. Dzięki!
TinyGrasshopper
Jak to rozwiązuje problem lepiej niż „Przebuduj projekt”?
IgorGanapolsky
Tak, w moim przypadku dodałem plik png o nazwie „import.png”. Musiałem zmienić nazwę, w moim przypadku „import_icon.png”, a następnie projekt został poprawnie skompilowany.
mihai71
17

Plik R.java zawiera łącze między stroną XML a stroną Java. „R nie można rozwiązać” pojawia się tylko wtedy, gdy występuje problem z niektórymi plikami zasobów. Tak więc najlepszym i skutecznym sposobem jest usunięcie ostatnio wykonanego pliku XML lub pliku do rysowania w pliku res. a następnie ponownie zacznij od tego miejsca zgodnie z normami kodowania Androida. To jedyny sposób. Skuteczny i właściwy sposób.

Użyj także Git do poprawnego śledzenia kodu. ..

Minto
źródło
W moim przypadku wystąpiły nie tylko problemy z XML, ale także z PNG (w wersji do rysowania).
CoolMind,
15

Twój kod jest po prostu zakodowany. Odpowiedź jest dość prosta.

Wystarczy przejść do Build -> Clean Project .

To powinno wystarczyć.

Sprawdź także swoją wersję Androida Studio.

Obecnie używam Androida Studio 3.0.1 .

lloydyu24
źródło
14

Czy ostatnio zaktualizowałeś swoje narzędzia SDK? Uruchom menedżera SDK systemu Android i upewnij się, że masz najnowsze narzędzia SDK, które są teraz oddzielone od narzędzi platformy. Miałem ten sam problem, kiedy po raz pierwszy zaktualizowałem menedżera SDK, pakiet narzędzi kompilacji SDK nie pojawił się do instalacji / aktualizacji, dopóki nie zamknąłem i nie otworzyłem ponownie menedżera SDK.

invertigo
źródło
wierzę, że wszystko tam jest aktualne. czy to naprawdę może powodować taki problem?
ez4nick
jeśli nie masz zainstalowanych nowych narzędzi do kompilacji SDK , tak.
invertigo,
12

Po prostu wyczyść swój projekt i zsynchronizuj projekt z plikiem Gradle.wprowadź opis zdjęcia tutaj

Problem zostanie rozwiązany.

Arunendra
źródło
Należy zauważyć, że kliknięcie prawym przyciskiem myszy „aplikacji” i kliknięcie przycisku synchronizacji w menu nie osiąga tego. Dzięki.
Mafro34,
11

Miałem to z

  1. Wielka litera w moich zasobach do rysowania.
  2. Import Android.R dodawany przez Android Studio (lub Eclipse)
  3. Błąd w pliku xml
Ryan Heitner
źródło
Miałem problem, ponieważ wystąpił błąd w jednym z moich plików XML. Rozwiązano problem, a następnieBuild->Clean Project
AjayCodes
11

Ostatnio miałem ten problem, a czyszczenie / kompilacja itp. Nie rozwiązało go. Wydawało mi się, że mam gdzieś problem, ale nie byłem pewien, gdzie go szukać (czy to w manifeście, plikach XML zasobów itp.?).

Gdy coś jest nie tak, możesz dowiedzieć się, co to jest, wykonując analizę kodu.

Z menu u góry wybierz:

Przeanalizuj -> Sprawdź kod, zeskanuj cały projekt za pomocą profilu „Domyślny”.

Wyniki kontroli będą zawierać element o nazwie „Android”. Tutaj znajdziesz listę wszystkiego, co powoduje problemy w twoich zasobach i pliku manifestu. Błędy otworzą wygenerowane pliki xml z twojej kompilacji, które pokażą wszelkie błędy na czerwono.

Mój dokładny problem został spowodowany, ponieważ korzystałem z plików manifestu opartych <application>na smaku i przez przypadek skopiowałem niektóre uprawnienia wewnątrz tagu w smaku.

Kontrola

AKTUALIZACJA: Miałem problem po tym, gdy Android Studio nadal wyświetlał błąd po poprawce, mimo że mogłem teraz budować i działać idealnie, gdy błąd nadal występował. (Korzystam z kanaryjskiej wersji, więc odłóż to na razie)

Matthew Cawley
źródło
Co ciekawe, miałem ten problem tylko w jednym pliku i uruchomiłem proces „Inspect Code”, który sam się wyczyścił (wyczyszczenie i przebudowanie go nie naprawiło). W Lint musiało być coś, co tylko to mogło wyjaśnić. Dzięki!
rundavidrun
Dziękuję Ci za to! Chociaż znalazło to wiele ogólnych błędów, których oczekiwano, fragmentem, który zniszczył cały zamek, był mały błąd składniowy w pliku XML wygenerowanym przez Asset Studio! Po rozwiązaniu tego problemu projekt Clean Project pozwolił mi iść naprzód.
Bink
10

Musiałem zaimportować mój Rpakiet w Android Studio. Na przykład:import com.example.<package name>.R

Pervy Sage
źródło
1
Byłem tu, zanim pomyślałem.
Jeszcze
1
To zadziałało dla mnie. Dziękuję Ci bardzo.
Aquarius_Girl
Zdarzyło mi się to po tym, jak zmieniłem nazwę pakietu, ale jakoś studio Android opuściło import com.example.old-package-name.R, więc musiałem zmienić nazwę importu.
pomyślny99
9

To bardzo stare pytanie, ale wciąż się często zdarza i nie ma tutaj naprawdę wyczerpującej odpowiedzi.

Miałem ten problem więcej razy, niż chcę przyznać. Może to być spowodowane różnorodnymi problemami, które w większości dotyczą struktury projektu niepasującej do oczekiwanych. Oto lista wszystkich problemów, które miałem:

Importowanie z Eclipse do Android Studio nie zawsze działa płynnie, szczególnie w przypadku starszych wersji Android Studio. Upewnij się, że używasz właściwego drzewa katalogów. Powinno to wyglądać tak dla umiarkowanie dojrzałej aplikacji:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

To może nie wyglądać tak w twoim IDE. Nad drzewem plików znajduje się menu rozwijane, które wyświetla pliki na różne sposoby, a domyślnie w moim systemie jest to Android, który dzieli pliki na różne typy. Łatwiej jest rozwiązać ten problem z projektu Project, a jeszcze łatwiej bezpośrednio z systemu plików twojego systemu operacyjnego, ponieważ Android Studio zrzuca foldery zawierające tylko inny folder do jednej linii.

Zwłaszcza jeśli kiedykolwiek zmienisz nazwę swojej aplikacji, musisz upewnić się, że drzewo źródłowe main / java / com / domain / AppName jest zaktualizowane. Upewnij się także, że tag pakietu w pliku AndroidManifest.xml jest poprawny.

Jeśli występują błędy w plikach Gradle lub AndroidManifest.xml, uniemożliwi to Android Studio prawidłowe tworzenie plików zasobów. Pliki Gradle mogą być czasami przerywane przez aktualizację Android Studio, szczególnie z wersji wcześniejszych niż 1.0. Czasami dzieje się tak, ponieważ przestaje on obsługiwać starsze wersje wtyczki Gradle, dlatego musisz zaktualizować numery wersji. Czasami może być trudno znaleźć aktualne wersje. Na dzień 17.07.2015 moje aplikacje działają dobrze com.android.tools.build:gradle:1.2.3. Znajduje się to w bloku zależności w zewnętrznym pliku ocen,

Jeśli Twój AndroidManifest odwołuje się do nieistniejącego zasobu lub działania ciągliwego lub ciągowego, zepsuje się i spowoduje ten błąd. Czasami, jeśli coś odwołuje się do nieistniejącego zasobu ciągnienia lub ciągów, pojawi się ten błąd.

Jeśli masz plik w zasobach, który jest uszkodzony lub nieprawidłowy plik xml, pojawi się ten błąd.

Z mojego doświadczenia wynika, że ​​czasami Android Studio czknie bez powodu i musisz go ponownie uruchomić i / lub komputer. Nie wiem dlaczego, ale czasem to działa.

Jeśli masz dwa zasoby xml o tej samej nazwie, w katalogach, które się nie zastępują, możesz mieć ten problem. Na przykład możesz mieć tę samą nazwę w Drawable-mhdpi i Drawable-xhdpi, ponieważ zastępują się one w zależności od urządzenia docelowego, ale jeśli masz tę samą nazwę w układzie i menu, spowoduje to problem. Zmień nazwę lub usuń jeden z plików.

Jeśli tylko niektóre zasoby mają ten problem, najprawdopodobniej są one w niewłaściwym katalogu.

W jednym przypadku musiałem całkowicie ponownie zainstalować Android Studio. Nie wiem, co było nie tak, ale zadziałało.

W jednym przypadku przeniosłem cały projekt do innego katalogu i ponownie zaimportowałem go jako nowy projekt. Nie wiem, co było nie tak, ale zadziałało.

Pliki XML ze słowami zastrzeżonymi dla nazw mogą powodować ten problem. Zmień ich nazwę lub usuń.

Plik Gradle może odwoływać się do wersji narzędzi do budowania, które nie zostały zainstalowane, na kilka sposobów. Popraw to, zmieniając Gradle lub pobierając odpowiednie narzędzia do budowania.

Wreszcie, po naprawieniu tego, co jest nie tak, musisz wyczyścić projekt Gradle. Aby to zrobić, przejdź do menu Kompilacja u góry i wybierz opcję Wyczyść projekt.

TBridges42
źródło
9

Wystarczy przejść do listy menu głównego Androida. kliknij Menu kompilacji , w części Kompilacja kliknij Przebuduj projekt.

wprowadź opis zdjęcia tutaj

Gundu Bandgar
źródło
9

Napotkałem ten problem, gdy ręcznie zmieniłem nazwę folderu domeny mojej aplikacji. Aby rozwiązać ten problem, musiałem

  1. Ustaw odpowiednią packagestrukturę folderów <manifest>w AndroidManifest.xml.
  2. Ustaw nową lokalizację dla pakietów android:namez <activity>w AndroidManifest.xml.
  3. Wyczyść pamięć podręczną przez

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

Problem zniknie, gdy studio Android uruchomi się ponownie i zbuduje nowy indeks.

Sridhar
źródło
9

Miałem ten sam problem: Android Studio 3.2 Projekt kompiluje się i działa poprawnie, ale otrzymuję ostrzeżenia ekranowe „Nie można rozwiązać symbolu R”

Czy nie pomocy:

  • Build-> Clean Project
  • Build-> Rebuild Project
  • Plik-> Unieważnij pamięć podręczną / Uruchom ponownie

Pomaga:

zarówno

w build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
...
}

zamienić

   dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
    ...
    }

lub

Zaktualizuj Android Studio do 3.3

Alex Burov
źródło
Uratowałeś mi życie ! Aktualizacja Androida Studio do wersji 3.4 rozwiązała dla mnie problem
Artory
8

Mam specjalny przypadek dla tego problemu.

W moim projekcie wszystko idzie dobrze, można go skompilować i skompilować z powodzeniem, ale w moim Android Studio IDE (a także próbowałem Intelligent IDEA, są w tej samej sytuacji) plik R.java nie może być dobrze rozwiązany i zawsze będzie upuść czerwoną linię.

Takie jak to: wprowadź opis zdjęcia tutaj

To prawie doprowadziło mnie do szału, nie mogę znieść koloru odczytu podczas programowania.

W końcu odkryłem, że ten trudny problem wynika z rozmiaru pliku mojej R.javy. Mój projekt jest bardzo duży, obsługuje wiele języków i wiele rozmiarów ekranu. Istnieje tak wiele zasobów, że rozmiar mojego R.javy wynosi około 2,5 mln .

Maksymalny rozmiar pliku w Android Studio to 2,5M w ustawieniach domyślnych, więc plików większych niż ten limit nie można dobrze rozwiązać. Możesz zmienić ustawienia domyślne w „AndroidStudio-root / bin / idea.properties”.

zmień ten wiersz:

idea.max.intellisense.filesize=2500

do :

idea.max.intellisense.filesize=5000

Następnie uruchom ponownie studio Android, czerwony kolor został usunięty, mogę ponownie programować z radością.

Fido Zhang
źródło
W Androidzie 3.2 po prostu pomóż / Edytuj właściwości niestandardowe
Beto
dobra wskazówka, ale to nie rozwiązało mojego
nierozstrzygniętego
7

Kompiluj> Wyczyść projekt

To zadziałało dla mnie. Miałem ten sam problem kilka razy i wydaje się, że to poprawiło. Chyba że coś zmieniłeś lub nazwałeś zmienną R. Ten problem zwykle pojawia się znikąd, kiedy mi się przytrafia, więc wyobrażam sobie, że to tylko studia z Androidem wariujące. ha ha

Życzę udanego i powodzenia w projektach.

S.Pedro
źródło
Dzięki. Dla mnie też zadziałało. Zamieniam niektóre obrazy na rysunkowe i dostałem ten błąd.
KCP
7

Wykonaj: Zbuduj> Wyczyść projekt

WAŻNE: Upewnij się, że nie ma żadnych błędów po czyszczeniu projektu w okienku wiadomości (Alt + 0). Jeśli znajdziesz jakieś czerwone kółka z wykrzyknikiem, musisz usunąć te błędy w kodzie.

Najczęściej te błędy są związane z @ string / lub @ array /. Wyczyść projekt ponownie i gotowe!

Hassan Naqvi
źródło
7

Miałem ten sam problem i zdarza się, kiedy tworzę nowy projekt.

To co robię to:

  • sprawdź dostępność aktualizacji SDK
  • następnie aktualizacje Androida Studio,
  • następnie ponownie otwórz projekt
  • otwórz plik andoridmanifest.xml
  • usuń spację między „_>” w systemie Android: oznacz i zapisz.

To działa dla mnie.

Elsanty
źródło
7

Z trudem sam to naprawiłem.

  • Upewnij się, że nie ma błędów w plikach layout.xml.
  • Przejdź do kompilacji> czysty projekt

To działało dla mnie, mam nadzieję, że również dla ciebie.

Oussama Essamadi
źródło
6

Miałem ten sam problem i przez większość czasu jest on rozwiązywany przez

  • Synchronizuj projekt z plikami stopni
  • Robienie kompilacji -> Czysty projekt
  • Robienie pliku -> Unieważnij pamięć podręczną

Ale tym razem błąd utrzymywał się nawet po zrobieniu tych wszystkich rzeczy i wreszcie znalazłem winowajcę.

Problem dotyczył pliku XML , w którym podałem zwykłą wartość ciągu android:idzamiast typu zasobu id .

BŁĄD

android:id="username"

KOREKTA

android:id="@id/username"

resourcesGłówną przyczyną tego błędu jest zepsucie rzeczy związanych z plikami XML. Uwaga: może nie być wyświetlany jako błąd w pliku układu XML.

UWAGA

W większości przypadków kompilator pokazuje źródło błędu w komunikacie. Najpierw spróbuj to sprawdzić, zanim spróbujesz zastosować inne rozwiązania

Siva Prakash
źródło
6

„Miałem ten sam problem, który został rozwiązany przez:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`
Bapusaheb Shinde
źródło
To dobra odpowiedź, chociaż musiałem tylko umieścić „//” w pliku stopni i wybrać resynchronizację. Następnie wszystkie AS rozpoznały import i pozwoliły mi uruchomić aplikację.
Val
5

Ta notacja wydaje się działać dobrze.

android:id="@+id/viewID"

Wygląda na to, że panel projektowy Android Studio nie działa dobrze.

Tevin J.
źródło
5

Taki sam problem. Zaczęło się, gdy dodałem kilka zdjęć do folderu, który można wyciągnąć i próbowałem uzyskać do nich dostęp. Również dodane obrazy miały rozszerzenie dużymi literami. Wydaje się, że to spowodowało awarię kompilacji, ponieważ nawet jeśli zmieniłem ich nazwę, wiadomość była taka sama, a R był niedostępny. W pliku .iml szukałem folderu exclude i usunąłem go (jak poniżej):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

Następnie przebudowałem projekt i R pojawił się magicznie.

użytkownik1137313
źródło
5

Istnieje wiele przyczyn tego błędu.

  1. Czasami ma to miejsce w celu zastąpienia pliku obrazu o tej samej nazwie.
  2. Załóżmy, że usunąłeś element ze swojego układu .xml, powiedz a, <Button/>ale nadal jest zadeklarowany w dowolnym działaniu lub fragmencie .java.
  3. Wiele więcej.

Najlepszym sposobem na wyśledzenie błędu jest przebudowanie go raczej w trybie czystym lub synchronizacji z celowym błędem.

Jeśli to nie rozwiąże twojego problemu, to musi być jakiś błąd lub błąd w czasie wykonywania lub błąd wystąpił z powodu niewłaściwego wykorzystania zasobów, może to być zarówno plik Java lub XML w kodzie lub projekt, który zmusza gradé do zatrzymania, ponieważ (R ) plik esource nie może poprawnie zindeksować twoich zasobów i musisz to przyznać.

Jeśli projekt został uruchomiony przed wprowadzeniem zmian, skomentuj wprowadzone zmiany i spróbuj odbudować projekt.

Z pewnością będzie działać, ponieważ nie będzie żadnych zmian.

Aby wyśledzić dokładny błąd, sprawdź zmiany, dzieląc je na mniejsze moduły.

Na przykład - jeśli wyświetlasz listę za pomocą kliknięcia przycisku i wstawiasz wartości listy do adaptera, najpierw sprawdź, czy możesz ją wyświetlić, czy nie, a następnie sprawdź błędy adaptera.

Sourav Roy
źródło
4

To był dla mnie duży ból głowy. W moim przypadku błąd pojawił się po skonfigurowaniu „Google Play Services” w Android Studio (instalacja + konfiguracja build.gradle). To z kolei wymaga minsdk> 7, ale błąd jest bardzo niejasny (w rzeczywistości skarga na ten temat pojawia się tylko jako „informacja”). W każdym razie .. po zmianie minsdk na 8 zarówno w pliku manifestu, jak i pliku build.gradle i przebudowaniu projektu błąd zniknął.

Więc .. ogólna rada na ten temat, jeśli mogę uogólnić - prawdopodobnie masz jakiś problem z plikiem manifestu lub innym plikiem konfiguracyjnym, który uniemożliwia poprawną kompilację. Spróbuj naprawdę mocno przyjrzeć się raportowi o błędzie, nawet wiadomościom zatytułowanym „informacje”, aby uzyskać wskazówki na temat tego, co to może być ...

ayal gelles
źródło