2011-01-06 16 views
14

Pobrałem kilka kodów źródłowych z kodów źródłowych Google.Jak wygenerować R.java

Wykonałem je na Eclipse, ale plik R.java nie został utworzony i dlatego dostałem wiele błędów mówiąc, że R nie można rozwiązać. W układzie nie ma również układu main.xml. Są tam inne pliki XML. Jak mogę wykonać te programy?

+3

Istnieje wiele podobnych pytań na temat Stackoverflow. Wykonaj wyszukiwanie i przeczytaj podstawową dokumentację. Brak pliku Main.xml nie jest wymagany. http://stackoverflow.com/questions/4516428/r-java-auto-generated-file http://stackoverflow.com/questions/2757107/developing-for-android-in-eclipse-r-java-not-generating –

+1

FWIW, żadne z tych pytań nie było całkowicie poprawne. Eclipse może przejść do stanu, w którym nie generuje pliku R.java. W rzeczywistości mój R.java został * usunięty * przez projekt-> Czysta operacja sugerowana przez tamtejszych ludzi. –

+0

Tak, clean usunie R.java, ale następnym razem, gdy go zbudujesz, zostanie odtworzony. Jeśli nie, możesz spróbować wyjść z Eclipse, a następnie wrócić; czasami Eclipse jest zdezorientowany. –

Odpowiedz

7

Podejmij, że masz Androida SDK. Jeśli masz ... po prostu wyczyść projekt. R.java zostanie automatycznie wygenerowany.

+3

Czyszczenie projektu powoduje usunięcie pliku R.java z projektu. – Navigatron

+0

@Nuktus W teorii tak. Tak właśnie powinno być. W praktyce (eclipse) możesz zobaczyć, że R.Java jest nadal obecna po oczyszczeniu. Najgorsze ze wszystkich, czasami stwierdzenie importu w klasach, wskazuje na niepoprawne R.Java (np. Z projektu bibliotecznego) – GSree

+0

To prawdopodobnie dlatego, że masz włączony autokompilację. Oczyścisz wszystko, a następnie skompiluje go autokompilacja. –

0

Jeśli plik build.xml zawiera element docelowy "-resource-src" (który będzie uwzględniony w pakiecie $ SDK_DIR/tools/main_rules.xml lub lib_rules.xml), można go przebudować przy użyciu narzędzia ant.

1

Po kilku godzinach frustracji w końcu zdecydowałem się usunąć czerwone znaki z mojego pliku, w których nie był on w stanie rozwiązać problemu R.java, ponieważ nie był on faktycznie dostępny w moim kodzie. Po usunięciu pierwszej czerwonej linii z pliku aktywności projekt automatycznie tworzy i generuje R.java.

To dla mnie coś naprawdę przerażającego, ponieważ bez żadnego powodu wraca z tym samym.

Nadzieja ta pomoże Ci

poważaniem Summved

15

Dopóki masz ważny projekt Android, można użyć aapt package wygenerować R.java z zasobów. Oto przykład użycia (wszystkie powinny być w jednej linii):

aapt package --non-constant-id -f -m -M <abs_path_to_AndroidManifest.xml> 
    -S <abs_path_to_res_dir> -I <abs_path_to_platforms_android.jar> 
    -J <abs_path_to_dir_that_should_contain_gen_R_java) 
    --generate-dependencies 

Powyższe można skryptów stosując ANT za pomocą celu aapt lub po prostu za pomocą exec celu.

+1

Funny - wygenerował go raz tak, od tego czasu działa również w środowisku Eclipse. I tak, wiem, że powinienem używać Android Studio, ale nie chcę ... –

3

Witam Po prostu stanąłem przed tym samym problemem. Plik R.java jest usuwany i odnawiany przy każdym czyszczeniu projektu. W moim przypadku wystąpiły błędy w jednym z plików .xml i nie wygenerowano R.java. Jeśli nie masz pliku Main.xml, który może być przyczyną. w każdym razie, jeśli naprawisz problemy .xml, należy wygenerować R.java.

0

Dla przyszłych czytelników zrestartuj adb, a następnie wyczyść.

2
  • Otwarte Android SDK Manager
  • Tick Tools że są 3 pakiety Android SDK Tools, usuwać i zainstalować je ponownie.
  • Po zakończeniu odśwież projekt w wersji Package Explorer.

Zobaczysz BuildConfig.java i R.java w /gen

Chyba że chcesz trzeba, że ​​polecam ten komentarz

cieszyć się z aplikacji budowlanego.

+0

Mówiąc dokładniej, aadt jest częścią "narzędzi do budowania Android SDK". Starsze sdk wysłały go w pakiecie "SDK platformy" na poziomie aplikacji. – Tobu

0

Popraw wszystkie błędy w układach Xml, jeśli błędy dotyczą tylko atrybutu id, zmień na inną nazwę, zapisz, a następnie wpisz oryginalne wartości, to rozwiązanie działa dla mnie.

0

Napotkano ten problem po dodaniu pliku jpg z numeryczną nazwą pliku do mojego folderu do rysowania.Otrzymałem błąd kompilacji "oczekiwany na linii y" podczas próby odbudowania projektu po jego oczyszczeniu. Możesz sprawdzić, czy nie masz podobnego problemu. Chociaż napotkałem to podczas używania Android Studio, jestem pewien, że wpłynie to również na Eclipse.

0

Czyszczenie projektu, usunięcie R.java i zregenerowanie go. Jeśli w dowolnym pliku/res (zasoby) występuje błąd, zwykle R nie będzie generowany. Może to być błąd w nazwie zdjęcia lub coś podobnego ... Napraw błędy. powodzenia;)

0

Napotkałem podobny problem i zmieniłem folder obszaru roboczego, a wszystkie błędy zniknęły. To proste rozwiązanie, ale działa.