R nie można rozwiązać-błąd Androida

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

Kreator stworzył 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);
    }
}

AleEclipse daje mi błąd

R nie można rozwiązać

On line

setContentView(R.layout.main);
Dlaczego?

PS: mam plik XML o nazwie main.xml Pod res/layout/.

Author: Maurizio Pozzobon, 2009-05-20

30 answers

Po wykryciu tego problemu, znalazłem tę notatkę w dokumentacji Androida:

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

*Uwaga: Eclipse czasami lubi dodawać " import Androida.R " oświadczenie w najlepsze pliki wykorzystujące zasoby, zwłaszcza gdy poprosisz Eclipse ' a o sortowanie lub zarządzanie importami w inny sposób. To spowoduje, że Twój pęknie. # Patrz out for these Error import oświadczenia i usunąć oni.*

Podczas przeglądania przykładowych samouczków Androida, często używałem Ctrl + Shift + o polecenie do "organizowania importu" i generowania brakujących instrukcji importu. Czasami generowałoby to niepoprawne polecenie import, które ukrywałoby klasę R.java generowaną automatycznie podczas budowania.

 819
Author: Michael Levy,
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-08-13 17:58:22

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

 379
Author: Luc,
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-13 00:31:43

Whenever you get

R nie można rozwiązać

Następnie sprawdź katalog /res I musi być jakiś plik, który ma jakiś błąd i który uniemożliwia zbudowanie aplikacji. Na przykład może to być plik układu lub może to być spowodowane brakiem zasobu, ale już zdefiniowano go w pliku XML.

Jeśli masz jakieś dodatkowe, nawet nieużywane (!) lub unreferenced (!) obrazów w folderze typu res/drawables-mdpi, które nie są zgodne z konwencje nazewnictwa plików (mogą zawierać tylko [a-z0-9_.]), the R.java klasa może nie generować, powodując łańcuch zdarzeń wszystkich innych wpisów, o których mowa. Mam nadzieję, że to pomoże!

 195
Author: Kailash,
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-08-28 08:06:21

Mój projekt zawiera r.java.at początek, R. layout.główna praca dobra.Ale po dodaniu jakiegoś kodu nie działa, a błąd to R. layout.główna nie może się rozstrzygnąć.w czym problem?

Spójrz na swój import. Jest szansa, że linia:

import android.R;

Będzie tam. Jeśli tak jest, usuń go, aby twój projekt rozwiązał R nie z domyślną klasą zasobów Androida, ale z tą automatycznie wygenerowaną z folderu/ res/.

 130
Author: Dimitar Dimitrov,
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-12 21:23:46

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

Zainstalowałem nowy ADT (V. 22). Przestał tworzyć gen folder zawierający R.java. Rozwiązaniem było również zainstalowanie nowych narzędzi do budowania Android SDK z Android SDK Manager.

Rozwiązanie znalezione tutaj

 93
Author: Michał K,
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-07-04 20:40:15

R.java jest plik, który Android eclipse plugins tworzy podczas budowanie aplikacji. R.java jest tworzony pod "gen" katalog. Ten plik jest generowany z informacji w " res" katalog. Po uruchomieniu wybierz "projekt" - > " Wyczyść..."na zaćmieniu menu, usunie i zregeneruje plik R.java.

Problem "R nie może być rozwiązany" dzieje się, gdy zmienisz swój Nazwa pakietu w pliku AndroidManifest.xml. Używa Twojego Androida Nazwa pakietu do utworzenia podkatalogu pod katalog " gen " gdzie przechowuje plik R.java.

Eclipse może mieć problemy z wykonaniem clean, ponieważ jest zdezorientowany o gdzie znajduje się plik R.java po zmianie pakietu Android nazwisko. Możesz zmienić nazwę podkatalogu gen, aby pasował do twojego Nowa Nazwa pakietu lub możesz zmienić nazwę pakietu z powrotem na starą nazwisko. Wyczyść, a następnie zmień nazwę pakietu na nową chcesz. Działa to najlepiej, jeśli powstrzymasz Eclipse przed próbą zbudowania while you are zmiana nazwy pakietu. W menu "Projekt" odznacz opcję "buduj automatycznie", a także gdy "Czyste..."dialog pyta, czy powinien" natychmiast rozpocząć kompilację" odznacz pole, aby nie próbowało budować podczas zmiany Nazwa pakietu. Po zmianie nazwy można włączyć " Build Automatycznie " włącz ponownie.

Zwróć uwagę, że jeśli Nazwa pakietu AndroidManifest.xml nie pasuje nazwę pakietu Java, Eclipse zakończy się automatycznie dodaniem "import .R; " wiersz we wszystkich plikach .java które mają jakiekolwiek odniesienia do R. Jeśli zmienisz swoje AndroidManifest.xml Nazwa pakietu, czasami Eclipse nie aktualizuje wszystkich tych dodanych import. Jeśli tak się stanie, użyj refaktoringu Eclipse (ALT + Shift + R ) aby zmienić instrukcję import w jednym z plików Java na nazwa twojego nowego AndroidManifest.xml pakietu. Najlepiej to zrobić po wyłączeniu opcji "buduj automatycznie".

 86
Author: 2 revs, 2 users 74%user286516,
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-13 00:38:02

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

R jest automatycznie generowaną klasą, która przechowuje stałe używane do identyfikacji twoich > zasobów. Jeśli nie masz R.java plik (byłby to gen / eu.mauriziopz.gps/R.java w > Eclipse z SDK 1.5) polecam zamknięcie i ponowne otwarcie twojego projektu lub przejście do > Project > Build all (I wybranie" Build Automatically " podczas gdy tam jest zalecane przez > Josef). Jeśli to nie zadziała, spróbuj stworzyć nowy projekt, jeśli problem zostanie odtworzony niż > napisz tu jeszcze raz, a przejdziemy do szczegółów.

Ale dowiedziałem się, że był jeszcze jeden problem, który był przyczyną pierwszego. Narzędzia w katalogu SDK nie miały uprawnień do wykonania, więc wyglądało to tak, jakby nie istniały dla Eclipse, więc nie zbudowały pliku R.java.

Więc modyfikacja uprawnień i wybranie "Build Automatically" rozwiązało problem.

 82
Author: MaurizioPz,
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-13 00:30:07

R jest automatycznie generowaną klasą, która przechowuje stałe używane do identyfikacji zasobów. Jeśli nie masz R.java plik (byłby to gen / eu.mauriziopz.gps/R.java w Eclipse z SDK 1.5) polecam zamknięcie i ponowne otwarcie projektu lub przejście do Project > Build all (I wybranie" Build Automatically " podczas gdy tam jest zalecane przez Josefa). Jeśli to nie zadziała, spróbuj stworzyć nowy projekt, jeśli problem zostanie odtworzony, napisz tutaj ponownie, a my przejdziemy do więcej szczegóły.

 37
Author: Will,
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
2009-05-20 01:46:29

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

 27
Author: sharika,
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-03-01 12:35:33

Warto zajrzeć AndroidManifest.xml. Atrybut package ma prawidłową wartość.

Czyli:

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

Po zmianie, R.java zostanie ponownie wygenerowany.

 22
Author: seven,
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-12-11 07:06:37

Ten błąd może być również spowodowany dodaniem aktywności do przestrzeni nazw, która różni się od głównej przestrzeni nazw dla Twojego pakietu.

Na przykład, jeśli com.example.myapp jest główną przestrzenią nazw Twojego pakietu, możesz dodać aktywność do przestrzeni nazw com.example.myapp.activities.

Spowoduje to błąd "R cannot be resolved".

Aby naprawić import R w domyślnej przestrzeni nazw w Twojej aktywności powinno być:

import com.example.myapp.R;
 19
Author: Rob,
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-13 19:22:44

Wraz z wspaniałymi sugestiami w poprzednich odpowiedziach, upewnij się, że cel Androida jest ustawiony:

  1. Kliknij prawym przyciskiem myszy swój projekt
  2. Wybierz Właściwości
  3. Wybierz Androida w lewym menu
  4. Zaznacz pole obok odpowiedniego celu budowania projektu.
  5. Kliknij Zastosuj i OK

Edit: rok później znalazłem inną przyczynę. Miałem .obraz jpg w moim rysowalnym folderze o tej samej nazwie co .obraz png. Odwołanie się do tego obrazka w moim kodzie musi mieć pomylił program i dał błąd "R cannot be resolved".

 19
Author: satyrFrost,
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-08-25 06:51:53

Upewnij się, że zainstalowałeś Narzędzie Android build tool form sdk manager

Projekt kliknij prawym przyciskiem myszy Właściwości - > Java BuildPath wybierz bibliotekę i dodaj android-support.jar postępuj zgodnie z tymi krokami.

Przejdź do Project->Properties - > Java Build Path, a następnie wybierz zakładkę Zamów i eksportuj. Ustaw obsługę Androida .biblioteka jar sprawdziła i umieściła ją na szczycie listy. I czyste i rebuild..It działa w większości przypadków

Tutaj wpisz opis obrazka

 16
Author: Sunil 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
2013-08-29 07:09:04

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

 14
Author: 2 revs, 2 users 67%user132014,
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-13 00:48:44

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

Zapisz plik (np. main.xml) następnie usuń R.java plik i sprawdź, czy regenerowany R.java rozwiązuje problem r resolve.

 13
Author: akim,
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-10-04 16:22:51

R jest klasą generowaną. Jeśli używasz Android Development Tools (ADT) jest generowany za każdym razem, gdy projekt jest zbudowany. Być może wyłączyłeś opcję "Build Automatically".

 12
Author: Josef,
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-08-13 16:53:10

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

Upewnij się również, że wszystkie nazwy zasobów obrazu są również pisane małymi literami. Miałem wielką literę w nazwie mojego pliku jpg i spowodowało to nierozwiązany błąd R w całym moim projekcie.

 11
Author: TonyS,
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-07-05 11:32:58

Ten błąd pojawił się podczas mojej instalacji x64 Linux Mint. Okazało się, że rezultatem była awaria w pliku ADB, ponieważ pakiet ia32-libs nie został zainstalowany. Po prostu uruchomienie apt-get install ia32-libs i ponowne uruchomienie Eclipse naprawiło błąd.

Jeśli Twoja dystrybucja x64 nie ma ia32-libs, musisz przejść do 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.
 10
Author: Meião,
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-01-21 01:17:50

Może być konieczna aktualizacja narzędzi SDK. Uruchom ponownie Android SDK Manager i zainstaluj nowy element: Android SDK Build-tools.

Tutaj wpisz opis obrazka

 9
Author: Eduardo Dennis,
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-11-06 04:19:43

Może być konieczne zaktualizowanie / zainstalowanie narzędzi SDK. Uruchom ponownie Android SDK Manager i zainstaluj nowy element: Android SDK Build-tools.jeden po drugim Usuń, napraw, który z nich działa dla Ciebie.Tutaj wpisz opis obrazka

 9
Author: Nazmul Hasan,
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
2016-04-02 01:36:28

Ja też miałem ten problem. Okazało się, że przypadkowo usunąłem zasób ciągu "app_name" z pliku strings.xml, co powodowało cichy błąd. Po dodaniu go z powrotem, Klasa R została wygenerowana pomyślnie i wszystko było z powrotem i działa.

 7
Author: Guy Starbuck,
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-08-13 16:53:59

Najpierw sprawdź czy jest jakiś błąd w dowolnym układzie xml, czy nie, Jeśli następnie rozwiąż go najpierw.

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

Tutaj wpisz opis obrazka

 6
Author: Jaimin Prajapati,
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-03-28 07:59:45

Spróbuj zmienić nazwę pliku układu XML małymi literami. Na przykład użyj my_file.xml zamiast myFile.xml.

 5
Author: Malcom,
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-13 00:41:13

Kolejny powód R.java może nie zostać automatycznie wygenerowany, jeśli masz katalogi takie 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.java znowu zaczął się dla mnie autogenerować.

 5
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
2012-08-13 17:56:07

Po prostu przejdź do listy górnego menu Androida. kliknij na Build Menu, w obszarze Build kliknij na Rebuild Project .

Tutaj wpisz opis obrazka

 5
Author: Gundu Bandagar,
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
2016-03-29 06:28:20

Miałem przykłady Android 8 i próbował używać Android 7 SDK. Kiedy zamknąłem projekt i ponownie otworzyłem folder aplikacji i zdecydowałem się użyć Android 8 SDK, był w stanie znaleźć plik R. Mam nadzieję, że to pomoże.

 4
Author: vkris,
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
2010-11-21 16:48:40

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

 4
Author: Brian Lacy,
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-12-21 17:09:28

Często dzieje się tak z powodu numeru wersji MinSDK podanego podczas tworzenia projektu. Przykład:

Jeśli chcesz, aby 2.1 było minimum, Android 2.1 jest w rzeczywistości poziomem API 7.

Możesz zobaczyć, o czym mówię, gdy przeglądasz SDK pobrane i zainstalowane. Przejdź do miejsca, w którym zainstalowałeś SDK (C:\android-sdk-windows Na przykład) i otwórz folder o nazwie "platforms". Zobaczysz coś takiego jak "android-7" wymieniony jako folder, a jeśli otworzysz, że jest source.properties plik, który po otwarciu za pomocą edytora tekstu wyświetli odpowiednią wersję platformy.

Kiedy tworzysz projekt i musisz wybrać API" Build Target", ostatnia kolumna na tej liście o nazwie "poziom API" pokazuje numer, którego szukasz podczas wypełniania Ustawienia MinSDK.

Jest to prawdopodobnie jeden z najczęstszych błędów, który powoduje, że plik R.java nie jest tworzony w ramach projektu > gen > nazwapakietu > R.java.

 4
Author: Aaron DeRenard,
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-13 00:46:51

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

 4
Author: user389061,
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-13 00:49:34

Niestety żadne z istniejących pytań nie pomogło. Ponieważ mój problem wydaje się specyficzny dla platformy, może to działać tylko wtedy, gdy jesteś na Ubuntu 64 Bit (obecnie używam Ubuntu 12). Na początku nie widziałem okna "problemy" , które już wskazywało na rozwiązanie, że w środowisku 64 bitowym potrzebujesz 32 bitowych bibliotek, których może brakować:

Sudo apt-get install ia32-libs

Zainstalowałem pakiet i przebudowałem projekt, który naprawił problem z ja.

 4
Author: Bernhard Kircher,
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-03-24 11:53:42