2013-05-23 8 views
8

Używam Eclipse 4.2.2 Juno na 64-bitowym systemie Windows do programowania w systemie Android SDK 17 z ADT. Właśnie dziś wyczyściłem działający projekt, ale okazało się, że plik R.java już nie generował.Android R.java nie będzie generował w środowisku Eclipse

Ten problem ma bardzo rozbieżną listę możliwych przyczyn. Użytkownik Gray, in response to the thread located here, wymienił zestaw artykułów, wszystkie odnoszące się do różnych możliwych przyczyn.

Mówi:

dont worry. Najpierw możesz wyczyścić projekt, a następnie uruchomić projekt. Jeśli to nie poskutkuje, to wykonaj następujące linki:

a następnie przechodzi do listy artykułów dotyczących różnych przyczyn tego problemu, linki do których jestem w stanie to, ale można znaleźć w pytaniu połączonego do powyższego.

Komentarz Graya jest dobrym podsumowaniem najczęstszych przyczyn tego problemu, w tym konwencją nazewnictwa plików zasobów, błędną instrukcją "import Android.R", błędami XML, korupcją wymagającą czyszczenia i przebudowy oraz sprawdzaniem zestawu SDK Androida w Projekt -> Właściwości -> Ścieżka/biblioteki Java.

Problem polega na tym, że mój R.java nadal nie generuje! Jedyną możliwą opcją na liście Graya wydaje się być to, że albo mój plik main.xml, albo AndroidManifest.xml jest uszkodzony, więc dodałem je, aby upewnić się, że nie pominąłem żadnych błędów.

Główny układ:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 
<com.bostonwalker.sseng.SSSurfaceView 
    android:id="@+id/ssview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
</FrameLayout> 

A mój manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.bostonwalker.enginedev" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" >" 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

jako początkujący programista Androida, to jest poza moją zdolność do debugowania. Czy ktoś może znaleźć wyjaśnienie?

+0

Czy masz wszystkie foldery * res *? * res/drawable *, * res/values ​​* (z odpowiednimi plikami)? – TronicZomB

+0

+1 Jasno określone pytanie z linkami do poprzedniego zasobu. Wszystkie pytania SO powinny być tak dobre! –

Odpowiedz

10

Najpierw sprawdź, czy są jakieś błędy w pliku zasobów. R.java nie zostanie wygenerowany, jeśli tak jest. Sprawdź, czy zaktualizowałeś swój zestaw do wersji 22. Jeśli tak, wykonaj poniższe czynności: Kliknij prawym przyciskiem myszy właściwości projektu goto. Ścieżka budowania Java. Wybierz kartę Zamów zamówienie. Upewnij się, że wybrane są prywatne biblioteki Androida. Jeśli masz odniesiony projekt biblioteki. zrób to samo również w przypadku projektu bibliotecznego. Oczyść i buduj.

Również goto android menedżera sdk i sprawdź, czy masz zainstalowane narzędzia do budowania android sdk. Ta liczba nie jest konieczna, ale upewnij się, że masz zainstalowane narzędzia do budowania Androida.

zobacz link poniżej

Eclipse error: R cannot be resolved to a variable

+2

Tak, okazało się, że pakiet narzędzi do budowania Androida został jakoś odinstalowany, co jest zabawne, ponieważ jak ten błąd pojawił się znikąd! Dzięki! –

+0

@BostonWalker sprawdź link zamieszczony w odpowiedzi, aby uzyskać większą jasność. – Raghunandan

+0

Brakuje narzędzi do budowania Androida. Co za ból; dzięki, że oddałem resztę mojego popołudnia! – mharper

0

Oprócz tego, co Reghunandan powiedział, po prostu miałem ten sam problem po aktualizacji do SDK 22 z Eclipse Indigo Win x64. Okazuje się, że podczas aktualizacji Menedżera SDK odinstalowałeś stare Narzędzia do budowania i nigdy nie instalowałeś zaktualizowanych, więc musiałem uruchomić je ponownie, aby je ponownie zainstalować. W ten sposób usunięto mój problem i wszystkie błędy kompilacji zniknęły.

Uwaga: musiałem zrestartować Eclipse, zanim błędy zniknęły, mimo że nie zostałem poproszony.

1

Ilekroć twoja wygenerowana klasa R nie jest generowana, oznacza to, że istnieje problem z jej wygenerowaniem z powodu jakiegoś problemu z analizą składni z zasobów XML. Sprawdź konsolę błędów w swoim IDE, aby dowiedzieć się, co konkretnie jest nie tak.

Typowe problemy to:

  • Niecytowany znak w strings.xml na przykład you're zamiast you\'re
  • Brakujące layout_width lub layout_height tagi w zasobach układ
  • Missing deklaracji przestrzeni nazw
  • nazw zmiennych, które nie są obsługiwane przez Javę, na przykład z powodu użycia wielkich liter lub użycia spacji, łączników lub innych nieobsługiwanych znaków
  • Każdy inny rodzaj błędu składni XML
0

wychodził podobny problem i okazało się, że importowane com.google.android.gms które miały odniesienie do google-play-services.jar. Kiedy dodałem ścieżkę do google-play-services.jar w moich bibliotekach aplikacji, generowany jest R.Java.

Powiązane problemy