Tworzenie dla Androida w Eclipse: R.java nie regeneruje

I ' ve found out that my R.java nigdy nie jest aktualizowany, więc nie zawiera informacji o moich nowych zasobach, więc postanowiłem je usunąć i pomyślałem, że Eclipse wygeneruje nowy. Ale tak się nie stało i nie mam R.java teraz. Jak mogę go zregenerować?

Używam Windows 7.

Z jednego z komentarzy: "Robienie projektu -> czysty jest tym, co spowodowało problem dla mnie. Czyszczenie usuwa R.java...i z jakiegokolwiek powodu wtyczka nie jest regeneruję plik."

Author: Peter Mortensen, 2010-05-03

30 answers

Ta strona sugeruje:

Jeśli uruchomisz czysty projekt, powinien on zregenerować Wszystkie wygenerowane pliki Javy, a mianowicie R.

...i...

W Eclipse, w menu Projekt, jest opcja budowana automatycznie. To pomoże Ci zbudować R.java modyfikacje plików są made. Czyste... opcja jest również tam w ramach projektu.

Ta strona sugeruje inne rozwiązanie.

 174
Author: aioobe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:30:07

Okazało się, że przydarzyło mi się to z zepsutym układem i wszystko wybucha. Spokojnie, to jak ten stary błąd, kiedy pierwszy raz nauczyłeś się programowania C, gdzie zapominasz o jednym średniku i generuje on setki błędów. Wielu panikuje, naciska wszystkie przyciski i pogarsza sprawę.

Rozwiązanie

  • upewnij się, że wszystko, do czego linki {[0] } nie są zepsute. napraw wszystkie błędy w plikach XML. Jeśli coś w adkach jest zepsute, R nie będzie zregeneruj się.
  • Jeśli w jakiś sposób uderzysz w coś i stworzysz import android.R w swojej aktywności, usuń to .
  • Run Project - > Clean. Spowoduje to usunięcie i zregenerowanie R i BuildConfig.
  • upewnij się, że Project - > Build Automatically jest zaznaczone. Jeśli nie, zbuduj go ręcznie za pomocą Menu -> Project -> Build Project.
  • poczekaj kilka sekund, aż błędy znikną.
  • Jeśli to nie zadziała, Usuń wszystko z folderu/ gen /
  • If it still nie działa, spróbuj kliknąć prawym przyciskiem myszy projekt -> Narzędzia Android - > napraw właściwości projektu.
  • Sprawdź swoje *.pliki właściwości (w folderze głównym folderu aplikacji) i upewnij się, że łącza w nim nie są uszkodzone.
  • kliknij prawym przyciskiem myszy swój projekt > właściwości > Android . Zapoznaj się z sekcjami Project Build Target i Library po prawej stronie. Twój cel budowania powinien pasować do celu w AndroidManifest.xml. Więc jeśli jest ustawiony na target 17 W AndroidManifest upewnij się, że nazwa docelowa to Android 4.2. Jeśli Biblioteka ma znak X pod odniesieniem, Usuń i dodaj ponownie bibliotekę, dopóki nie pojawi się zielony znacznik. Może się to zdarzyć, jeśli przeniosłeś kilka plików i folderów.

Co zrobić, gdy R nie regeneruje się

Zwykle dzieje się tak, gdy masz uszkodzony plik XML.

  • Sprawdzanie błędów wewnątrz plików XML, głównie w folderze /res/
  • wspólne miejsca to /layout/ i /values/, zwłaszcza jeśli ostatnio zmieniłeś jedną z nich
  • Sprawdź AndroidManifest.xml. Stwierdzam, że często zmieniam łańcuch znaków i zapominam zmienić nazwę Łańcucha z AndroidManifest.xml.
  • sprawdź czy Android SDK Build-tools jest zainstalowany. Window - > Android SDK Manager -> Tools- > Android SDK Build-tools
  • upewnij się, że podczas aktualizacji Android SDK Tools, zaktualizujesz również Android SDK Platform-tools i Android ADK Build-tools. Build zawodzi po cichu, jeśli nie pasują.
  • Jeśli nie możesz znaleźć problemu, kliknij prawym przyciskiem myszy /gen/ - > Przywróć z lokalnej historii... - >kleszcz R.java - > kliknij Przywróć . Nawet jeśli nie rozwiąże problemu, usunie dodatkowe błędy, aby ułatwić znalezienie problemu.
 300
Author: Muz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 20:00:23

Miałem ten sam problem. Kiedy to sprawdziłem, odkryłem, że nazwa zasobu XML w układzie nie miała prawidłowej konwencji nazewnictwa. Miała duże litery. Więc zmieniłem nazwę, żeby wszystkie litery były małe i magia zadziałała.

 40
Author: Amit Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:46:26

One reason the R.class może zniknąć nagle, gdy są błędy w plikach XML. Na przykład, gdy dodajesz plik XML z wielkimi literami w nazwie, jak myCoolLayout.xml, który nie jest dozwolony. Lub gdy masz odniesienia, które nie wskazują na istniejące pliki itp.

 28
Author: Pawel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:30:51

W Eclipse, po prostu użyj Project -- > clean aby wyczyścić projekt. Na R.java zostanie automatycznie (ponownie) stworzony.

Jeśli z jakiegoś powodu to nie działa: upewnij się, że twój układ.pliki xml nie zawierają błędów. Eclipse wydaje się być nieco błędny tutaj: czasami nie zaznacza błędów w XML lub Package explorer. W takim przypadku: spójrz na widok" konsola "lub" problemy "po użyciu"clean". Wszystkie błędy powinny być wyświetlane tam. Napraw je i powtórz czyste.

Uwaga: nie jest konieczne, aby naprawić błędy pojawiające się z powodu brakującego pliku R! wystarczy naprawić pliki XML i inne błędy projektu i użyć clean!

 17
Author: masi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-25 12:04:13

Quick fix:

Nazwa pakietu w manifeście musi być taka sama jak w folderze /src, pakiet folderu /gen zostanie automatycznie odtworzony.

Szczegółowa obserwacja:

Obserwuj nazwę pakietu w folderze /gen. W moim przypadku było inaczej niż w folderze /src.

Pakiet wymieniony w manifeście był pakietem /gen folderu.

Próbowałem dodać pakiet o nazwie folderu /src do folder /gen również zobaczyć, co by się stało, ale to nie rozwiązało problemu. Następnie usunąłem nazwę pakietu, która nie była taka sama jak nazwa folderu /src. Pakiet o nazwie, która nie odpowiadała folderowi /src został odtworzony, gdy tylko go usunąłem.

Ponieważ odniesienie do pakietu w manifeście odpowiadało temu, które było bezsensownie odtwarzane i które nie odpowiadało pakietowi w folderze /src, wywołało to aby zmienić nazwę package = "oldPackage" za pomocą package = "srcFolderPackage".

 10
Author: androidWorkerTheEighth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:54:02

Miałem ten sam problem i w końcu znalazłem problem: w strunach.xml, nie zachowałem linii <string name="app_name">program-name</string>, która jest obecna domyślnie podczas tworzenia nowego projektu Androida. Myślałem, że jest używany tylko do programu HelloWord, który jest oryginalnym programem.

Jednak AndroidManifest.xml odnosi się do tej wartości, stąd:

= > błąd kompilacji;
= > the R.java isn ' t updated;
= > ID nie są rozpoznawane...

 9
Author: Glaux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:32:55

Android dodał w SDK build tool ADT 22 dla mechanizmu budowania. Musisz tylko wykonać następujące kroki.

  1. Update Android SDK Tool
  2. zaktualizuj narzędzie Android SDK Platform tool
  3. Update Android SDK Build Tool
  4. Dodaj ścieżkę narzędzia budowania do zmiennej path. (ścieżka do - - - - twojego katalogu-ścieżka\android-sdk \ build-tools)

To rozwiąże problem.

 9
Author: Amol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 20:08:17

Jeśli twój R.java nie jest generowany, jednym z rozwiązań jest usunięcie pliku Układu o nazwie " blabla.Wynocha.xml".

Po usunięciu tego pliku spróbuj wyczyścić projekt z menu Projekt -> Clean .

 8
Author: Shashank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:35:07

Jako uogólnienie odpowiedzi Glaux, jeśli masz jakieś błędy w katalogu res, to R.java może nie generować-nawet jeśli wyczyścisz i odbudujesz. Najpierw rozwiąż te błędy.

Jako przykład: po dodaniu pliku obrazu powiedzmy, " myimage-2.jpg", system uzna to za błąd, ponieważ nazwy plików są ograniczone do wartości alfanumerycznych. Odśwież katalog " res " po dodaniu plików i obserwuj wyjście w oknie konsoli pod kątem dowolnej nazwy pliku Ostrzeżenia.

 7
Author: Abel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-16 17:40:25

Jeśli twój OS to Ubuntu, mogę podać jakąś sugestię:

  1. Install or upgrade ia32-lib:

    sudo apt-get upgrade ia32-libs
    
  2. Sprawdź, czy masz odpowiednie uprawnienia w folderze aapt:

    cd ANDROID/adt-bundle-linux-x86_64-20130522/sdk/build-tools/android-4.2.2
    chmod 777 aapt
    
  3. Start Eclipse:

    sudo eclipse
    
  4. Uruchom projekt - > Clean in Eclipse

 6
Author: Nevin Chen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 20:12:51

W 100% masz błąd w pliku XML, ale weryfikacja XML nie pokazuje błędu. To jest powód, dla którego musisz najpierw sprawdzić swoje pliki XML!

 6
Author: Erdinc Ay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 20:19:00

Zawsze warto przyjrzeć się zakładce Problemy w Eclipse. W moim przypadku otrzymywałem komunikat o błędzie "android nie mógł rozwiązać docelowego" android-8 " ", który utrzymywał R.java od bycia wygenerowanym. Poprawiłem więc zaimportowany Cel do tego, którego używałem w domyślnym .properties Plik, następnie wykonałem czyste poprzez projekty- > czyste i voila! R.java jest generowany automatycznie! Mam nadzieję, że to pomoże!

 5
Author: goseib,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-15 17:04:34

Czyszczenie projektu, Zamknięcie Eclipse, ponowne jego otwarcie i uruchomienie w końcu sprawiło, że mój R.java by się ponownie pojawić... Hope it helps

 4
Author: Filippo Mazza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-25 10:48:43

Upewnij się, że nie importujesz

Android.R;

 4
Author: Humble Coder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-25 10:38:30

R.java nigdy nie zostanie wygenerowany, jeśli w folderze res są jakieś błędy. Na przykład w podfolderze drawable znajdują się dwa pliki o tej samej nazwie, jeden to icon.png, a drugi to icon.html.

Możesz zobaczyć jakiś błąd w oknie dziennika konsoli Eclipse, który mówi: "ikona wejścia zasobów jest już zdefiniowana.". Po usunięciu ikony.html, możesz wyczyścić lub po prostu usunąć folder gen. Przekonasz się, że R.java jest stworzony.

 4
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-25 12:16:14

Odkryłem, żekażdy plik zawierającywielkie litery w folderze res spowoduje powstanie tego błędu. Przydarzyło mi się to z plikiem PNG, który dodałem i o którym zapomniałem.

 4
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-25 12:20:54

Po przeczytaniu wielu postów i filmów na YouTube, odkryłem, że każdy z nas ma R.java brakuje z różnych powodów.

Oto Jak to naprawiłem w Eclipse:

  • Utwórz R.java w gen folderze ręcznie i zapisz.
  • Następnie przejdź do projektu i kliknij "Wyczyść"

Zostanie wyświetlony następujący komunikat i Twój plik zostanie automatycznie przepisany:

R.java został zmodyfikowany ręcznie! Przywracanie do wygenerowanego wersja!

 3
Author: Anup Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-27 16:59:15

Dla mnie podlinkowalem V7 appcompat dwa razy. Tak czy inaczej, w Eclipse kliknij prawym przyciskiem myszy nazwę projektu w Package Explorer lub Navigator, przejdź do Właściwości, Android, i odznacz wszystkie duplikaty w sekcji Biblioteka. Może być konieczne zbudowanie -- > Clean później.

 3
Author: Shanker Kaura,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-26 17:39:25

Oczywiście nie ma na to ostatecznej odpowiedzi, ale tu jest jeszcze jedna, której tu już nie widzę:

Miałem R.java zniknąć po (próba) synchronizacji zespołu, i były pliki rozwiązywania konfliktów w projekcie (tj., thingy.xml.mine,thingy.xml.r35, itd.). Usuwanie ich/rozwiązywanie konfliktów R.

 2
Author: Ben Mosher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-01 14:17:31

Miałem taki problem. Przypadkowo usunąłem to

xmlns:tools="http://schemas.android.com/tools"

Który zaczął powodować błędy kompilacji w całym projekcie w moich plikach XML, a także moich plikach Java. Jak tylko ponownie wpisałem to co usunąłem, to działało ponownie:)

 2
Author: Mohamed El-Saka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-05 00:56:47

OK więc jest jasne, że może być wiele przyczyn tego problemu. Jeśli korzystasz z 64-bitowego Linuksa i dopiero konfigurujesz ADT po raz pierwszy, może wystąpić ten problem, gdy R nie generuje się automatycznie. Sprawdź kartę konsola i może pojawić się błąd podobny do:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

Jeśli tak jest, musisz zainstalować ia32-libs, używając czegoś takiego jak:

 sudo apt-get install ia32-libs

Zobacz tutaj po szczegóły: Android adb not found

 2
Author: Patrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23

Natknąłem się na ten problem kilka razy. Zauważyłem, że jeśli nie zaimportowałem pakietu R przez nazwę mojej aplikacji, na przykład, jeśli moja aplikacja miała przykładową nazwę pakietu.test następnie okazało się, że musiałem zaimportować przykład.test.R w celu uzyskania dostępu do któregokolwiek z zasobów.

Jeśli to nie zostało zaimportowane, to zasoby, które zostały zwrócone, były domyślnymi zasobami bez mojego własnego.

Z tym, że jeśli okaże się, że otrzymujesz tylko listę domyślne zasoby następnie po prostu sprawdź, aby upewnić się, że importujesz application_package_name.R a nie android.R.

 2
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-25 12:01:22

Mój problem polegał na tym, że appcompat nie było w tym samym katalogu co mój projekt.

Odkryłem to podczas kompilacji mojej aplikacji z Ant .

 2
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 20:17:23

Upewnij się również, że masz najnowszą wersję wtyczki ADT i otwórz Menedżera SDK Androida, aby zaktualizować wszystkie narzędzia SDK do najnowszej wersji. Sprawdź aktualizacje również w samym Eclipse. Nie pasujące wersje spowodowały dla mnie problem.

 1
Author: caw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-21 22:56:42

Mój problem był w pliku menu. Wydaje się, że kompilator nie ostrzega cię, jeśli w plikach menu znajdują się odniesienia do ciągów znaków, które nie istnieją wewnątrz strings.xml. Sprawdź, czy twoje item s W menu pliki XML odwołują się do żadnych łańcuchów, które nie istnieją w twoim strings.xml. Zazwyczaj w android:title.

 1
Author: Stefan Anca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-13 12:29:31

Dla mnie ten błąd powstał, gdy próbowałem zduplikować istniejącą res/menu zamiast tworzyć ją za pomocą wizard.

 1
Author: Hakim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-03 12:21:39

Wszystkie te odpowiedzi nie mogą działać, jeśli używasz Mavena. Rozwiązaniem dla mnie było dodanie

<genDirectory>${project.basedir}/gen</genDirectory>

Do sekcji konfiguracyjnej android-maven-plugin.

 1
Author: Bevor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-07 06:30:12

I found a solution why R.class nie jest zrobiony przez Eclipse po zrobieniu go ponownie - 2 clean, build itp.

Problem tkwi tutaj w ciągach.xml:

<string name="hello">Hello World, HelloAutoComplete!</string>

<string name="app_name">HelloAutoComplete</string>

Są one domyślnie tworzone przez Eclipse podczas tworzenia projektów.

Zdecydowanie zmieniasz struny.xml dla własnych wymagań. Czasami czyścisz sznurek.xmls te dwie linie z twojego kodu: To sprawia problem w AndroidManifest.plik xml:
<application android:icon="@drawable/icon"  android:label="@string/app_name">
<activity android:name=".HelloAutoComplete" android:label="@string/app_name">

Więc nie może się komunikować sznurkami.xml.

 1
Author: aarifmkhan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:44:36

Zmieniłem nazwę pliku XML układu i okazało się później, że plik XML (dostawca widżetów w tym przypadku) nadal odnosi się do starego układu XML, który nie istnieje, a to uniemożliwiło automatyczne generowanie / korekcję klasy R.

 1
Author: Howard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 12:48:16