2010-08-11 11 views
6

La generazione automatica della classe R non funziona più. Ho provato Progetto -> Pulisci ... È apparso un avviso su tutti i file xml: "Nessun vincolo grammaticale (DTD o schema XML) rilevato per il documento." Forse è per questo che la generazione del codice si è interrotta. Qualche idea su come ottenere di nuovo la classe R?Nessuna classe R generata

+0

si tenta di chiudere il file manifest e riaprirlo? e lo stesso per Eclipse? Si dovrebbe vedere un errore nel log degli errori di Eclipse, o nella console Android se il loro è un problema in uno dei layout. – Sephy

risposta

16

Il file R non verrà generato a meno che non vi siano errori nella cartella /res/.

Se non ci sono errori nella cartella /res/, provare a rimuovere la cartella gen e quindi fare clic destro sul progetto -> android -> correggere le impostazioni di android.

+0

non riesce a trovare il menu voce: progetto -> android. solo progetto -> proprietà -> android, ma questo probabilmente non è quello che intendevi. – lgwest

+0

l'unica cosa nella cartella res è l'avviso su "Nessun vincolo grammaticale ..." è questo il problema? Non so perché quell'avvertimento è apparso all'improvviso, non era lì dall'inizio? – lgwest

+0

@Igwest: non la penso così :( – Macarse

2

Generalmente quando si verifica questo tipo di errore, significa che si è verificato un errore in una delle risorse. Hai aggiunto un disegnabile, modificato un layout o aggiunto/modificato qualsiasi risorsa appena prima che ciò accada?
Ad esempio, se hai creato un drawable con 9 patch, non puoi avere image.png e image.9.png contemporaneamente nella cartella drawable, creerai un errore ed Eclipse impazzirà. Stessa cosa se hai commesso un errore in un file xml e lo hai salvato. Quindi la classe R non può essere generata se non hai corretto il file.

3

Come dicono gli altri post, la cartella/res non deve contenere file contenenti errori. Se è così allora il file R.class non può essere generato. Se gli errori vengono corretti, il progetto dovrebbe essere ricostruito e la classe R. dovrebbe essere generata. In caso contrario, credo che sia possibile fare clic con il tasto destro del mouse sul progetto, quindi su Strumenti Android -> Correggi proprietà progetto. Penso che questo sia ciò che @Macarse significasse per progetto -> android -> correggere le impostazioni di Android. Non ho visto queste opzioni, ma gli strumenti Android -> Correggi le proprietà del progetto di solito fa il trucco per me o, a volte, anche la pulizia dell'origine funziona (fai clic con il tasto destro del mouse sul progetto -> Origine -> Ripulisci ...).

Spero che questo ti aiuti.

:)

Jack

+0

Grazie mille. Questo l'ha risolto per me. –

0

Mentre è vero che R non sarà generato se ci sono errori nelle vostre risorse, ho trovato che il problema è che Eclipse non sempre segnala gli errori.

fare questo nella directory del progetto:

android update project -p . 

e poi costruire dalla riga di comando. Vedi se viene fuori qualche errore utile.

0

Anche questo può accadere perché una delle cartelle è denominata in modo errato, e quindi compromettere la struttura della directory di Android. Nel mio caso, ho provato a generare la classe R in molti modi che ho visto qui fino a quando ho realizzato che avevo creato una cartella "res/drawble" invece di "res/drawable". Come per magia, basta andare su Progetto-> Pulisci con "Costruisci automaticamente" e apparirà.

1

Nel mio caso è stato così semplice come definire la posizione sdk che termina con una barra. Il problema era che non stava trovando appt.exe perché cercava in ../sdkplatform-tools/aapt.exe invece in ../sdk/platform-tools/aapt.exe

1

Ecco la soluzione:

Aprire una finestra di terminale e digitare

sudo apt-get install ia32-libs

anche se si utilizza un 64-bit, questo sarà di nuovo Aiutarti. Ha funzionato perfettamente per me.

+0

devi spiegare di più, che cos'è ia32-libs? e perché aiuterà? –

+1

Perché nel messaggio di errore si diceva che ia32-libs è assente. Poi ho eseguito "sudo apt-get install ia32-libs" e poi ho lavorato molto bene. La classe R ora è gerizzata perfettamente. Ti suggerisco anche io. –

+0

anche questo ha risolto il problema per me. Dopo aver installato il ia32-libs, ho fatto un "clean" sul progetto, e poi è apparso la classe R. – Moon13

0

Io uso Intellij IDEA e un giorno R classe ha smesso di generare (forse, dopo l'aggiornamento).

Impostazione segno di spunta “accumulo esterno” nelle preferenze del compilatore risolve il problema:

enter image description here

0

ho la risposta, nel mio caso in cui la mia classe R non è stato possibile rilevare dalla classe src. Assicurati solo che il nome del pacchetto in cui si trova la classe R (appname -> gen-> package-> R.class sia lo stesso di quello che stai effettivamente utilizzando nella classe di attività src

Problemi correlati