R nie może zostać rozwiązany - błąd Androida

1071

Właśnie pobrałem i zainstalowałem nowy zestaw Android SDK. Chciałem stworzyć prostą aplikację do przetestowania go.

Kreator utworzył ten kod:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

ale Eclipse daje mi błąd

R nie może zostać rozwiązany

online

setContentView(R.layout.main);

Dlaczego?

PS: Mam plik XML o nazwie main.xmlunder res/layout/.

Maurizio Pozzobon
źródło
Dla tych, którzy nadal mają problem z zaćmieniem, którzy nie mogą zaktualizować / wygenerować R.javy. Możliwym rozwiązaniem jest utworzenie fikcyjnego pliku xml i usunięcie tego pliku xml. W moim przypadku jest to rozwiązanie
denil
Szczerze mówiąc, to brzmi tak głupio (i tak jest), ale modyfikacja pliku AndroidManifest.xml, następnie cofnięcie tej edycji, a następnie zapisanie pliku zadziałało dla mnie. Jeśli potem wyczyściłem projekt, znów się zepsuł. Przez cały ten czas myślałem, że Xcode był jedynym IDE, który miał tego rodzaju tajemnicze błędy.
iwasrobbed 22.12.12
3
Czy próbowałeś kliknąć projekt prawym przyciskiem myszy -> Narzędzia Android -> Napraw ustawienia projektu?
Siergiej
6
Sprawdź plik układu XMl, jeśli w pliku XML nie wystąpił błąd, nie można wygenerować R.java, a błąd pojawia się również po bulid i clean.
swiftBoy
1
Tylko wskazówka: kiedy przestawiłem IDE z Eclipse na Android Studio, przestało mi się to dziać.
mata

Odpowiedzi:

840

Po wyśledzeniu tego problemu znalazłem tę notatkę w dokumentacji Androida:

http://source.android.com/source/using-eclipse.html

* Uwaga: Eclipse czasami lubi dodawać polecenie „import android.R” u góry plików, które używają zasobów, zwłaszcza gdy poprosisz Eclipse o sortowanie lub inne zarządzanie importami. Spowoduje to, że twój makijaż złamać. Zwróć uwagę na te błędne instrukcje importu i usuń je. *

Przeglądając przykładowe samouczki na temat Androida, często używałem polecenia Ctrl+ Shift+ Odo „Organizowania importów” i generowania brakujących instrukcji importu. Czasami generuje to niepoprawną instrukcję importu, która ukrywa R.javaklasę generowaną automatycznie podczas kompilacji.

Michael Levy
źródło
32
Zdarza się to również, ale może to powodować również plik zepsutym układem.
GHz
113
Ten klasyczny błąd występował w Eclipse od lat i nigdy nie został naprawiony. Tysiące ludzi boryka się z tym samym problemem.
Carol
52
Programiści Eclipse, proszę usunąć ten $ $% & „$ & / bug! Programiści Google, dajcie mi pakiet £ $ & $”% i pakiet Androida podobny do Xcode na iPhone'a!
Abramodj
18
@ 2-Stroker: To błąd. Zdarzyło mi się, gdy stworzyłem nowy oddział andoridowy za pośrednictwem WIZARD zaćmienia i narzekałem na „R nie można rozwiązać”. Musiałem skomentować linie setContentView & getMenuInflater, a następnie zaćmienie wygenerowało R.java, po czym mogłem anulować komentarz setContentView & getMenuInflator. Abramodj ma rację, środowisko ma poważny problem, jeśli nawet twój przykład „hello world” się nie skompiluje. Napraw to google!
CF_Maintainer,
5
W jaki sposób Google nie przyznaje funduszy eclipse.org na naprawę takich przedmiotów?
Cris
391

Za każdym razem, gdy miałem problem z tym, że R nie został wygenerowany, a nawet zniknął, było to spowodowane pewnym problemem w pliku układu XML, który uniemożliwił zbudowanie aplikacji.

Luc
źródło
21
+1 za to. Miałem starszy plik styles.xml z rodzicem = "android: WindowTitleBackground", który łamał moją kompilację i uniemożliwiał generowanie cokolwiek do „gen”. Błąd nie został faktycznie zgłoszony, z wyjątkiem okna konsoli tuż po pierwszym otwarciu projektu.
Scott Persinger
12
dokładnie, jeśli skopiowałeś układy z innego projektu i otrzymujesz to, szuka brakujących rysunków - to naprawi to natychmiast!
Gabor
4
Rozumiem, że mam ten sam problem, czy jest jakiś sposób, aby poznać jeden z układów?
Sergey Kucher
3
Tak, brakowało mi pliku do rysowania, co uniemożliwiło nawet wygenerowanie pliku R. Dziwne jest to, że miałem android:icon="@drawable/XXX"deklarację <item>w zasobie menu, ale nie było czerwonej sygnalizacji sygnalizującej, że zasobu XXX nie można znaleźć. W innych przypadkach "@drawable/YYY" został oflagowany, gdy nie znaleziono YYY, ale nie w tym przypadku. Z jakiegoś powodu.
Taylor
5
Tak, doskonałe rozwiązanie. Gdy pojawia się ten błąd ... wiele razy wszystkie pliki układu są oznaczone jako zawierające błędy. Jest tak, ponieważ wszyscy szukają R. Jeden z nich prawdopodobnie ma błąd niezwiązany z pracą, który przerywa kompilację. W moim przypadku brakujący wyciągalny.
Todd Painton
201

Kiedykolwiek dostaniesz

R nie może zostać rozwiązany

następnie sprawdź /reskatalog, a plik musi zawierać błąd, który uniemożliwia zbudowanie aplikacji. Na przykład może to być plik układu lub może to być spowodowane brakiem jakiegoś zasobu, ale został on już zdefiniowany w pliku XML.

Jeśli masz dodatkowe, nawet nieużywane (!) Lub niepowiązane (!) Obrazy w folderze, takim jak res / drawables-mdpi, które nie są zgodne z konwencjami nazewnictwa plików (może zawierać tylko [a-z0-9_.]), Klasa R.java może nie zostać wygenerowana, powodując ciąg zdarzeń we wszystkich innych wymienionych postach. Mam nadzieję, że to pomoże!

Kailash
źródło
Miałem ten problem z przykładowym ApiDemos. Trochę brakujących zasobów w pliku strings.xml. Błąd XML wymieniono w konsoli Eclipse.
lemotdit
Dziękuję Ci! to był mój problem, miałem układ, który był błędny, ale nie było o tym żadnej wiadomości.
29
Jak sprawdzić błędy? Nic nie dostaję w konsoli podczas budowania / uruchamiania
Vincent
4
Jak dowiedzieć się, KTÓRY plik XML powoduje błąd? Zaćmienie ich nie oznacza!
Yar
1
Miałem 2 obrazy o tej samej nazwie w folderze hdpi (1 z png i 1 z formatem jpg) usunięcie 1 z nich rozwiązało problem
Haseeb Jadoon
134

mój projekt zawiera r.java. na początku R.layout.main działa dobrze, ale po dodaniu kodu nie działa, a błąd jest taki: R.layout.main nie można rozwiązać. na czym polega problem ?

Spójrz na swój import. Możliwe, że linia:

import android.R;

tam będzie. W takim przypadku usuń go, aby Twój projekt rozwiązał R nie z domyślną klasą zasobów Android, ale z tą automatycznie wygenerowaną z folderu / res /.

Dimitar Dimitrov
źródło
5
Dzięki @ Dimitar, to naprawiło mój problem! Wygląda na to, że Eclipse i funkcja automatycznego importowania dodały mi tę linię importu automatycznie.
Steven
7
Miałem również podobne problemy, gdy nazwałem układ dużymi literami
Travis
Jest to jeden z 5 głównych powodów, dla których ludzie otrzymują komunikat „R not found”. Skompilowałem stronę problemu / rozwiązania z obrazami pokazującymi główną 5 pod linkiem poniżej. Naprawdę mam nadzieję, że lista pomaga ludziom, ponieważ jest to powszechny problem. spragucm.wordpress.com/2014/05/13/…
Chris Sprague
po usunięciu R, w niektórych miejscach R jest używany jako klasa i daje teraz błąd, jak to rozwiązać?
Narendra Jaggi
96

I jeszcze jedna rzecz, która może powodować ten problem:

Zainstalowałem nowy ADT (v. 22). Przestał tworzyć genfolder, który zawiera R.java. Rozwiązaniem było również zainstalowanie nowych narzędzi do budowania zestawu SDK systemu Android z Menedżera zestawu SDK systemu Android.

Rozwiązanie znalezione tutaj

Michał K
źródło
Ja też. A kiedy wybrałem menedżera SDK, lo i oto narzędzia kompilacji pokazują się automatycznie sprawdzane pod kątem instalacji, z uwagą, że nie zostało zainstalowane! Co daje???
David w HotspotOffice
Miałem ten sam problem. Tak się cieszę, że to udostępniłeś. Przez dwa dni szukałem błędu z własnego kodu. Jestem bardzo rozczarowany Google, ponieważ ten komunikat o błędzie był bardzo trudny do rozwiązania, ale został spowodowany własnym błędem, chociaż narzędzia nie zgłaszają poprawnie, co go powoduje. W tym samym czasie dokonałem zmian w moim projekcie, więc pomyślałem, że to znowu moja wina.
Reijo Korhonen
5
Pracował dla mnie, dzięki! To tylko wzmacnia moją mantrę: „nigdy nie aktualizuj niczego podczas opracowywania”.
Rodrigo Dias,
kręciłem się, szukając odpowiedzi, ale nic mi nie działało. myślę, że to był problem zaćmienia lub SDK. tak jak mówisz, po prostu usuwam poprzedni pakiet Eclipse i instaluję go ponownie. i wtedy działa. twoja odpowiedź była pomocna
początkujący
To był problem w moim przypadku! Zmarnowany jeden dzień, próbując naprawić błąd R, dodając / usuwając referencje i wypróbowując inne opcje. Mój był świeżą nową konfiguracją ADT i nowym projektem Androida i wciąż pojawiał się błąd. W końcu okazało się, że muszę zainstalować wszystkie dostępne aktualizacje narzędzi Android SDK, narzędzi platformy Android SDK i narzędzi do budowania SDK: p
Saurabh Kumar
87

R.javato plik, który wtyczki Android Eclipse tworzą podczas budowania aplikacji. R.javajest tworzony w katalogu „gen”. Ten plik jest generowany na podstawie informacji w katalogu „res”. Jeśli uruchomisz wybierz „Projekt” -> „Wyczyść ...” w menu Eclipse, usunie, a następnie ponownie wygeneruje R.javaplik.

Problem „R nie może zostać rozwiązany” występuje po zmianie nazwy pakietu w AndroidManifest.xmlpliku. Używa nazwy pakietu Androida, aby utworzyć podkatalog w katalogu „gen”, w którym przechowuje R.javaplik.

Zaćmienie może mieć problemy z wykonaniem czyszczenia, ponieważ nie ma pewności, gdzie R.javaznajduje się plik po zmianie nazwy pakietu Androida. Możesz albo zmienić nazwę podkatalogu, genaby pasował do nazwy nowego pakietu, lub możesz zmienić nazwę pakietu z powrotem na starą. Wykonaj czyszczenie, a następnie zmień nazwę pakietu na nową, którą chcesz. Działa to najlepiej, jeśli powstrzymasz Eclipse przed próbą kompilacji podczas zmiany nazwy pakietu. W menu „Projekt” odznacz opcję „Kompiluj automatycznie”, a także, gdy okno dialogowe „Wyczyść ...” zapyta, czy powinno „Rozpocznij kompilację natychmiast”, odznacz to pole, aby nie próbowało budować podczas zmiany nazwa pakietu. Po zmianie nazwy możesz ponownie włączyć opcję „Automatycznie buduj”.

Pamiętaj, że jeśli AndroidManifest.xmlnazwa pakietu plików nie jest zgodna z nazwą pakietu Java, Eclipse automatycznie doda „import <nazwa pakietu Android> .R;” wstaw wszystkie .javapliki z odniesieniami do R. Jeśli zmienisz AndroidManifest.xml nazwę pakietu, czasami Eclipse nie aktualizuje wszystkich tych dodanych importów. Jeśli tak się stanie, użyj refaktoryzacji Eclipse ( ALT+ Shift+ R), aby zmienić instrukcję importu w jednym z plików Java na AndroidManifest.xmlnazwę nowego pakietu. Najlepiej to zrobić po wyłączeniu opcji „Automatycznie buduj”.

286516
źródło
21
To wygląda jak wycinanie i wklejanie bez odniesienia
Casebash
1
Wiele kopii / wklejania plików i refaktoryzacji nazw prowadzi do tego samego problemu, mimo że wszystkie nazwy plików i zawartość były w porządku. Czyszczenie projektu, ręczne usunięcie R.java i wszystkich nagłówków importu, a następnie przebudowanie tych nagłówków importu (nadal z CTRL + SHIFT + O) działało dobrze.
hornetbzz
To zadziałało dla mnie. Zmieniłem nazwę pakietu w manifeście. Musiałem użyć ctrl-shift-O w klasach, które odwoływały się do wygenerowanych wartości klasy R, aby dodać poprawny import.
Chuck Krutsinger
Naprawiłem to dla mnie. Widziałem również, że problem z importem występował w przeszłości, ale tym razem problem polegał na tym, że nazwa pakietu w manifeście nie była zgodna z nazwą pakietu w folderze src.
Jim Range
W mojej aplikacji miałem dwie czynności. Jeden miał inną nazwę pakietu niż ten, przeciwko któremu wygenerowano R. Musiałem importować R ręcznie, używając czegoś takiegoimport com.example.main.package.name.R;
Oliver Moran
85

To, co powiedział Will, było słuszne

R jest automatycznie generowaną klasą, która przechowuje stałe używane do identyfikacji> zasobów. Jeśli nie masz pliku R.java (byłby to gen / eu.mauriziopz.gps / R.java w> Eclipse z 1.5 SDK), zaleciłbym zamknięcie i ponowne otwarcie projektu lub przejście do> Projekt> Zbuduj wszystko (i wybierając „Kompiluj automatycznie”, gdy jest to zalecane przez> Josefa). Jeśli to nie zadziała, spróbuj utworzyć nowy projekt, jeśli problem zostanie odtworzony,> ponownie opublikuj tutaj, a my przejdziemy bardziej szczegółowo.

ale dowiedziałem się, że był inny problem, który był przyczyną pierwszego. Narzędzia w katalogu SDK nie miały uprawnień do wykonania, więc było tak, jakby nie istniało dla Eclipse, więc nie zbudowało R.javapliku.

Modyfikacja uprawnień i wybranie opcji „Automatycznie buduj” rozwiązało problem.

MaurizioPz
źródło
@Jignesh - cd $ANDROID_SDK_ROOT/build-tools/<version>. Następnie chmod a+xna pliki podoba aapt, aidl, dexdump, dx, itd. ANDROID_SDK_ROOTPowinny być ustawione w danym środowisku, a to wskazuje na instalacji SDK. Na przykład /opt/android-sdk. Ważne jest, aby ustawić oba, ANDROID_SDK_ROOTa ANDROID_NDK_ROOTponieważ narzędzia Android używają ich wewnętrznie. Zobacz Polecany katalog NDK? na liście użytkowników NDK.
jww
@ Lewis .. Już wybrałem opcję „Kompiluj automatycznie”, ale błąd nadal występuje.
d_unknown,
39

R jest automatycznie generowaną klasą, która przechowuje stałe używane do identyfikacji zasobów. Jeśli nie masz pliku R.java (byłby to gen / eu.mauriziopz.gps / R.java w środowisku Eclipse z pakietem 1.5 SDK), zaleciłbym zamknięcie i ponowne otwarcie projektu lub przejście do opcji Projekt> Zbuduj wszystko (i wybierając „Kompiluj automatycznie”, gdy jest to zalecane przez Josefa). Jeśli to nie zadziała, spróbuj utworzyć nowy projekt, jeśli problem zostanie odtworzony, opublikuj tutaj ponownie, a my przejdziemy bardziej szczegółowo.

Będzie
źródło
8
To działało dla mnie, ale najpierw musiałem „Projekt -> Wyczyść ...”.
Matt Connolly,
27

Zamknij wszystkie pliki, wyczyść projekt, uruchom ponownie Eclipse.

sharika
źródło
23
+1 Ale czasami potrzebuje 3 restartów zaćmień i 7 projektów czyszczenia pomiędzy. Po prostu próbuj ;-) #rant
Matthias Bauch,
3
Wymieszaj z dotykaniem (edytuj + zapisz) plików .xml (strings.xml ...).
Ali Shakiba,
24

Warto się zameldować AndroidManifest.xml. Atrybut packagema poprawną wartość.

To jest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

Po zmianie R.javazostanie ponownie wygenerowany.

siedem
źródło
Moja oryginalna nazwa pakietu to com.xxxxxdroid.router. Utworzyłem nową wersję mojej aplikacji com.xxxxxdroid2.router. Kiedy to zrobiłem, musiałem zaktualizować nazwę pakietu w AndroidManifest.xml, ale dopiero znacznie później, kiedy zacząłem kopiować i wklejać stare klasy. Dzięki za wskaźnik!
Eugene van der Merwe
to naprawiło mój problem, pracowałem w pliku xml, cieszę się, że pamiętam, który mam, mam ich mnóstwo ... dzięki ...
GHz
19

Ten błąd może być również spowodowany przez dodanie działania do przestrzeni nazw innej niż główna nazwa pakietu.

Na przykład, jeśli com.example.myappjest to główna przestrzeń nazw dla twojego pakietu, możesz następnie dodać działanie do com.example.myapp.activitiesprzestrzeni nazw.

To spowoduje błąd „R nie da się rozwiązać”.

Aby naprawić import R w domyślnej przestrzeni nazw w Twojej działalności, powinien wynosić:

import com.example.myapp.R;
Rob
źródło
Pomogło mi to, przeniosłem moje działania do pakietu poniżej katalogu głównego, dodając pakiet główny jako import (import com.example.myapp.R;) rozwiązałem problem.
eageranalyst
19

Oprócz świetnych sugestii z poprzednich odpowiedzi upewnij się, że ustawiony jest cel Androida:

  1. Kliknij projekt prawym przyciskiem myszy
  2. Wybierz Właściwości
  3. Wybierz Androida z menu po lewej stronie
  4. Zaznacz pole obok odpowiedniego celu kompilacji projektu.
  5. Kliknij Zastosuj i OK

Edycja: Rok później znalazłem inną przyczynę. Miałem obraz .jpg w folderze z możliwością rysowania o tej samej nazwie co obraz .png. Odwołanie się do tego obrazu w moim kodzie musiało pomylić program i spowodowało błąd „R nie można rozwiązać”.

satyrFrost
źródło
17

Upewnij się, że zainstalowałeś narzędzie do budowania systemu Android z menedżera SDK

projektu kliknij prawym przyciskiem myszy właściwości-> Java BuildPath wybierz bibliotekę i dodaj android-support.jar wykonaj następujące kroki.

Idź do Projekt-> Właściwości-> Ścieżka kompilacji Java niż wybierz kartę Zamów i eksportuj. Ustaw sprawdzoną bibliotekę .jar obsługującą system Android i umieść ją na górze listy. I czyste i odbudować .. To działa w większości przypadków

wprowadź opis zdjęcia tutaj

Sunil Kumar
źródło
15

Właśnie miałem ten problem po raz milionowy i zdałem sobie sprawę, co go spowodowało: utworzyłem plik XML z dużymi literami w nazwie. Wszystkie nazwy plików XML /resmuszą być zgodne [a-z0-9\\._].

132014
źródło
zauważyłem też, że przepełnienie stosu wymaga od nas ucieczki przed wszystkimi odwrotnymi ukośnikami.
14

Najprostsze rozwiązanie - Czasami wystarczy zapisać plik XML, nad którym pracowałeś, aby uruchomić autogenerator.

Zapisz plik (np. Main.xml), a następnie usuń plik R.java i sprawdź, czy zregenerowany R.java rozwiązuje problem rozwiązania R.

akim
źródło
Prawdziwe. Czasami, jeśli mówi, że w twoim pliku XML jest problem, w którym go nie ma (czerwona zawijasowa linia lub żółty wykrzyknik), usuń obraźliwą linię, zapisz plik XML, wklej ponownie linię i zapisz ponownie. Jeśli nie budujesz automatycznie, po tym buduj ponownie, a może po prostu działać. Zaćmienie jest czasem głupie. :)
hotshot309 21.01.12
Pomimo innych odpowiedzi wymienionych powyżej, ta okazała się dla mnie poprawna. Początkowo dostałem komunikat „nie mogę znaleźć APK”, kiedy poszedłem skompilować jakiś przykładowy kod, potem zrobiłem Clean, który wygenerował masę błędów „R nie można rozwiązać”, a następnie po prostu otworzyłem plik .xml i ręcznie zapisałem błędy zostały wyczyszczone i mogłem skompilować.
sXe
Tak prawda: po oczyszczeniu projektów R.java zniknęła - edycja i zapisanie pliku strings.xml rozwiązało problem.
BurninLeo
12

Sprawdź nazwy plików XML. Upewnij się, że wszystkie są pisane małymi literami.

Upewnij się również, że wszystkie nazwy zasobów obrazów są również w DOLNEJ PRZYPADKU. Miałem wielką literę w nazwie mojego pliku jpg, co spowodowało nierozwiązany błąd R w całym moim projekcie.

TonyS
źródło
+1 za to był mój problem. Musisz nazwać swoje zdjęcia w ten sposób: eicon.png nie eIcon.png. Znalazłem błąd, patrząc na konsolę.
Zwracał
12

Rjest generowaną klasą. Jeśli korzystasz z narzędzi programistycznych Android (ADT) , jest on generowany za każdym razem, gdy projekt jest budowany. Być może wyłączono opcję „Automatycznie buduj”.

Josef
źródło
10

Ten błąd pojawił się w mojej instalacji Linux Mint x64. Okazało się, że wynikiem była awaria pliku ADBbinarnego, ponieważ ia32-libspakiet nie został zainstalowany. Samo uruchomienie apt-get install ia32-libsi ponowne uruchomienie Eclipse naprawiło błąd.

Jeśli twoja dystrybucja x64 nie ma bibliotek ia32-lib, musisz wybrać Multiarch.

Sprawdź # 4 i # 5 w tym poście: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Mam nadzieję, że to komuś pomoże.

Meião
źródło
Warto zauważyć, że jeśli masz 64-bitową instalację Linuksa, będziesz potrzebował ia32-libs. Jeśli go nie masz, próba wykonania polecenia adb spowoduje dziwny komunikat informujący, że nie można znaleźć pliku lub katalogu.
rs_atl
10

Może być konieczna aktualizacja / instalacja narzędzi SDK. Uruchom ponownie Menedżera SDK Androida i zainstaluj nowy element: Android SDK Build-tools.one przez jedno usunięcie, napraw, który z nich działa dla Ciebie.wprowadź opis zdjęcia tutaj

Nazmul Hasan
źródło
9

Może być konieczna aktualizacja narzędzi SDK. Uruchom ponownie Menedżera zestawu SDK systemu Android i zainstaluj nowy element: Narzędzia do budowania zestawu SDK systemu Android.

wprowadź opis zdjęcia tutaj

Eduardo Dennis
źródło
8

Też miałem ten problem. Okazało się, że przypadkowo usunąłem z strings.xmlpliku zasób „nazwa_aplikacji” , co spowodowało cichy błąd. Po dodaniu go klasa R została pomyślnie wygenerowana i wszystko wróciło do normy.

Guy Starbuck
źródło
6

Spróbuj, aby nazwa nowego pliku układu XML była mała. Na przykład użyj my_file.xmlzamiast myFile.xml.

Malcom
źródło
+1 TAK! Upewnij się, że jest zgodny z prawidłowymi konwencjami nazewnictwa ... [a-z0-9_.]
jasonflaherty
6

Jeszcze innym powodem, dla którego R.javanie można wygenerować się automatycznie, jest posiadanie katalogów takich jak res / drawable-hdpi , res / drawable-mdpi lub res / drawable-ldpi .

1.6+ wydaje się być w porządku z tymi katalogami, ale 1.5 ich nie chce. Kiedy usunąłem te katalogi, R.javazacząłem ponownie automatycznie generować.

Peter Mortensen
źródło
6

Pierwsze sprawdzenie, czy jest jakiś błąd w dowolnym układzie XML, czy nie, jeśli to najpierw rozwiąż.

W przeciwnym razie usuń zależność junit z projektu i odbuduj projekt.

wprowadź opis zdjęcia tutaj

Jaimin Prajapati
źródło
5

Często dzieje się tak z powodu numeru wersji MinSDK, który podałeś podczas tworzenia projektu. Przykład:

Jeśli chcesz, aby wersja 2.1 była minimalna, Android 2.1 ma w rzeczywistości interfejs API poziomu 7.

Możesz zobaczyć, o czym mówię, przeglądając pobrany i zainstalowany pakiet SDK. Przejdź do miejsca, w którym zainstalowałeś SDK ( C:\android-sdk-windowsna przykład) i otwórz folder o nazwie „platformy”. Zobaczysz coś takiego jak „android-7” na liście jako folder, a jeśli otworzysz, istnieje source.propertiesplik, który po otwarciu za pomocą edytora tekstu pokaże odpowiednią wersję platformy.

Gdy tworzysz projekt i musisz wybrać interfejs API „Build Target”, ostatnia kolumna na tej liście o nazwie „Poziom API” pokazuje liczbę, której szukasz, wypełniając ustawienie MinSDK.

Jest to prawdopodobnie jeden z najczęstszych błędów, który powoduje, że R.javaplik nie jest tworzony w obszarze Project> gen> nazwa_pakietu> R.java.

Aaron DeRenard
źródło
5

Usuń main.out.xml. Jestem nowy i nie wiem jeszcze, do czego służy ten plik, ale usunięcie go rozwiązało problem.

389061
źródło
5

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
4

Miałem przykłady Androida 8 i próbowałem użyć zestawu Android 7 SDK. Kiedy zamknąłem projekt i otworzyłem ponownie folder aplikacji i zdecydowałem się na użycie zestawu SDK systemu Android 8, udało mi się znaleźć plik R. Mam nadzieję że to pomoże.

vkris
źródło
4

W moim przypadku wystąpił błąd AndroidManifest.xml. Inni powiedzieli, że twoje pliki XML muszą być wolne od błędów, ale szukałem tylko w folderze res /. Znajdź i napraw jak najwięcej możliwych błędów, a problem może rozwiązać się sam.

Brian Lacy
źródło
To był winowajca w moim przypadku. DOWOLNY błąd w pliku manifest.xml może powodować ten problem, jeśli R.java nie został jeszcze zbudowany.
Scott Biggs,
4

W przypadku, gdy ktoś jest zainteresowany (mogę tutaj uratować ci życie), miałem błąd, R.xmlnie można go rozwiązać, nieco inaczej w projekcie GLS. Hmmmm Po przejrzeniu R.javaznalazłem klasę generowaną automatycznie XML.java, (myślę, że jej tam nie było).

Rozwiązanie? Potrzebował nowego folderu w res: res\xmli pliku default_values.xml tam wywołanego . Wtedy wszystko było w porządku.

Na wypadek, gdyby nie masz tego pliku, jest to:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
phil
źródło