gen esiste già ma non è una cartella di origine


91

Sto sviluppando il mio progetto Android, dopo aver rimosso una libreria inutilizzata, ho ricevuto l' errore:

myproject/gen already exists but is not a source folder. Convert to a source folder or rename it

Nel mio codice attività, tutte le risorse da R.javanon possono essere risolte.

Ho provato, fare clic destro sul mio progetto => Java Build Path => nella scheda "Source", ho aggiunto gen / come sorgente. Ma non aiuta con il problema ...

Perché, come sbarazzarsi di questo problema?

----AGGIORNARE----

Ho scoperto che, l'eclissi si lamenta anche del fatto che "Project non ha file project.properties! Modifica le proprietà del progetto per impostarne uno". , ma ho il file project.properties nel mio progetto. Perché si lamenta? Ho pulito il progetto e "corretto le proprietà del progetto" ma non aiuta.


5
controlla che la tua cartella src contenga qualsiasi cartella gen. se c'è cancellalo. .non c'è bisogno di crearlo manualmente. Pulisci il tuo progetto una volta.
Padma Kumar

ciao, la mia cartella src non contiene alcuna cartella gen ...
Leem.fin

1
Mi è successo dopo aver importato un progetto
max.mustermann il

1
Hai un'ottima risposta, attualmente valutata 79, ma non l'hai accettata. Dovresti accettarlo. E il tuo "AGGIORNAMENTO" dovrebbe essere una domanda separata (e potresti voler vedere se qualcuno ha già risposto).
steveha

Penso che la mia risposta aiuterà in questo problema .. stackoverflow.com/questions/9738203/…
Ranjit

Risposte:


234

Ho lo stesso problema.

Due azioni, prima:

    1. Fare clic con il pulsante destro del mouse sul progetto e andare su "Proprietà"
    2.Seleziona "Java Build Path" a sinistra
    3.Aprire la scheda "Sorgente"
    4.Fai clic su "Aggiungi cartella ..." e seleziona "gen" e "src"

secondo: (perché l'azione precedente mi ha chiesto di rimuovere qualcosa ... non ricordo cosa fosse ...)

    1. Fai clic con il pulsante destro del mouse sul progetto e vai su "Proprietà"
    2. Seleziona "Java Build Path" a sinistra
    3. Apri la "scheda" Librerie
    4. Aggiungere un JAR esterno. Aggiungi l'API di Google che si trova nella tua directory Android (android-sdk \ piattaforme \ android-yourversion

E ora funziona per me!


10
Nel mio caso dovevo solo fare la prima parte sopra menzionata. Grazie!
tm_forthefuture

La prima soluzione mi ha aiutato anche al primo tentativo :)
Saad Qureshi

2
Ha funzionato ... ma come è successo? Stupido Android. :-)
Ryan Detzel

Il primo passo ha funzionato per me. Non sono sicuro di come o perché Eclipse abbia deciso di eliminare queste cartelle (.classpath non sembra essere cambiato) ...
ssawchenko

Ciao .. Funziona benissimo :)
vjamit

37

Soluzione:

Passo 1 :

  • Fare clic con il tasto destro sul progetto e andare su "Proprietà"
  • Seleziona "Java Build Path"
  • Passa alla scheda "Origine" Rimuovi tutte le fonti dalla cartella di origine in Build Path
  • Riavvia Eclipse

Passo 2 :

  • Fare clic con il tasto destro sul progetto e andare su "Proprietà"
  • Seleziona "Java Build Path"
  • Passa alla scheda "Sorgente"
  • Fare clic su "Aggiungi cartella ..." e selezionare la cartella di origine "gen" e "src" nel percorso di compilazione
  • Riavvia Eclipse

Finale

Costruisci progetto / i

Felice Coder :)


1
check gen risolve solo il problema e non funziona con la cartella src
Manikandan

Avrei sprecato la mia giornata. Grazie
Prakash

17
  1. Fare clic con il tasto destro sul progetto e andare su Proprietà
  2. Seleziona Java Build Path a sinistra
  3. Scheda Open Source
  4. Fare clic su Aggiungi cartella ... e selezionare gen e src

Questa è la migliore risposta. Conciso, problema risolto, boom!
Ely

8

Ciò è causato dall'utilizzo dell'importatore sbagliato in Eclipse. Se hai progetti Android, devi importarli nel tuo spazio di lavoro con Android-> Codice Android esistente , non Generale-> Progetti esistenti .

inserisci qui la descrizione dell'immagine


3

ho dovuto eliminare l'intera cartella gen all'interno di eclipse non da file explorer. poi ha fatto una pulizia ed è stato ricostruito. divertente, questo è accaduto subito dopo aver eseguito un report HTML di Lint.


Questo ha funzionato anche per me. Ho appena cancellato il file gen e pochi secondi dopo è stato rigenerato e tutto è tornato alla normalità.
Sandy

2

La cartella gen è dove ADT crea il file R.java, che specifica le definizioni delle tue risorse. cioè le tue risorse (colori, dimensioni, layout, ecc.) vengono convertite in codice e collocate in R.java nella cartella gen.

Quindi, quando crei l'app, devi assicurarti che la cartella gen venga trattata come una cartella del codice sorgente dal tuo IDE, poiché contiene la classe R.

Nel tuo IDE, devi contrassegnare la cartella gen come cartella di origine, in modo che il suo contenuto venga creato insieme alla tua fonte.

Il tuo tasso di accettazione è molto basso. Se vuoi che le persone ti aiutino, hai bisogno di un alto tasso di accettazione.


9
ma come posso accettare se non c'è una risposta corretta? Controllo le risposte, ma nessuno è la soluzione ... Ad esempio, il mio post attuale, so cos'è gen / e come funziona in Android, sto cercando una soluzione al mio problema attuale. Ma non ne ho ancora uno.
Leem.fin

1

Ho incontrato lo stesso problema, risolto come segue:

In Package Explorer, fai clic con il pulsante destro del mouse sulla cartella gen, trova "Build Path - Use as Source Folder" e fai clic su di esso.

Questo è tutto. Spero che sarà di aiuto.


1

Avevo configurato SVN per un progetto con lo stesso problema, cancellato tutte le cartelle e file, recuperato di nuovo da SVN e ancora senza fortuna. L'unica cosa che ha aiutato è stata annullare le modifiche e eliminare / reimportare i progetti nell'area di lavoro. Spero che questo ti aiuti


0

L'ultima volta che ho avuto questo problema, è stato perché ho cambiato la sorgente su un altro ramo dietro le quinte. Una volta chiuso Eclipse e riavviato, il problema è scomparso.


0

Ho avuto alcuni degli stessi sintomi , ma l'ho risolto in modo diverso:

Ho scoperto di avere due file nella directory disegnabile che erano in conflitto: icon.png e icon.xcf. Ciò ha reso la generazione di errori R. Ho spostato icon.xcf fuori mano e R ha generato e il progetto è stato compilato.


0

Vai alle proprietà del progetto, quindi vai a Java Build Path, quindi Rimuovi cartella già esistente, quindi fai clic su Aggiungi cartella quindi Aggiungi la cartella di origine e gen. quindi premere ok ............ Funzionerà .......


0

La mia soluzione era incollare quanto segue nel file .classpath:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

0

Dobbiamo anche controllare le nostre istruzioni di importazione, se abbiamo importato 'android.R' dobbiamo rimuoverlo.


0

Questo accade perché il tuo file .classpath è stato cancellato in qualche modo. Questo file contiene tutte le informazioni dalla scheda Percorso build Java in Proprietà progetto. Puoi aggiungere tutte le informazioni manualmente, ma c'è un modo più semplice per risolvere questo problema.

Se hai una copia del file .classpath sulla tua macchina, puoi semplicemente copiarlo e incollarlo nella directory del tuo progetto.


0

Ho provato i suggerimenti forniti qui e ho ancora avuto il problema. Alla fine, si è scoperto che Eclipse aveva sbagliato le sue importazioni. Per qualche ragione ha aggiunto le parole "gen" e "src" all'inizio della riga di importazione. Ho dovuto modificare tutte le righe di importazione da

import gen.org.qtproject.qt5.android.bindings.QtApplication;

per

import org.qtproject.qt5.android.bindings.QtApplication;

Una volta fatto ciò, tutto è tornato alla normalità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.