gen już istnieje, ale nie jest folderem źródłowym

91

Rozwijam swój projekt na Androida, po usunięciu nieużywanej biblioteki pojawił się błąd:

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

W moim kodzie działania R.javanie można rozwiązać wszystkich zasobów z .

Próbowałem, kliknij prawym przyciskiem myszy na mój projekt => Ścieżka budowania Java => w zakładce „Źródło”, dodałem gen / jako źródło. Ale to nie pomaga w problemie ...

Dlaczego, jak pozbyć się tego problemu?

----AKTUALIZACJA----

Zauważyłem, że zaćmienie również narzeka, że ​​„Projekt nie ma pliku project.properties! Edytuj właściwości projektu, aby je ustawić”. , ale mam plik project.properties w moim projekcie. Dlaczego narzeka? Wyczyściłem projekt i „poprawiłem właściwości projektu”, ale to nie pomaga.

Leem.fin
źródło
5
sprawdź, czy twój folder src zawiera dowolny folder gen. jeśli tam, usuń to. . nie ma potrzeby tworzenia go ręcznie. Wyczyść swój projekt raz.
Padma Kumar
cześć, mój folder src nie zawiera żadnego folderu gen ...
Leem.fin
1
Zdarzyło mi się po zaimportowaniu projektu
max.mustermann
1
Masz bardzo dobrą odpowiedź, ocenioną obecnie na 79, ale jej nie zaakceptowałeś. Powinieneś to zaakceptować. Twoja „AKTUALIZACJA” powinna być osobnym pytaniem (i możesz chcieć sprawdzić, czy ktoś już na nie odpowiedział).
steveha
Myślę, że moja odpowiedź pomoże w tym problemie .. stackoverflow.com/questions/9738203/…
Ranjit

Odpowiedzi:

234

Mam ten sam problem.

Najpierw dwie czynności:

    1. Kliknij prawym przyciskiem myszy projekt i przejdź do „Właściwości”
    2. Wybierz opcję „Java Build Path” po lewej stronie
    3. Otwórz zakładkę „Źródło”
    4. Kliknij „Dodaj folder…” i zaznacz „gen” i „src”

po drugie: (bo poprzednia akcja prosiła mnie o usunięcie czegoś ... nie pamiętam co to było ...)

    1. Kliknij projekt prawym przyciskiem myszy i przejdź do „Właściwości”
    2. Wybierz opcję „Ścieżka budowania Java” po lewej stronie
    3. Otwórz „kartę” Biblioteki
    4. Dodaj zewnętrzny plik JAR. Dodaj interfejs API Google, który znajduje się w katalogu systemu Android (android-sdk \ platform \ android-yourversion

A teraz to działa dla mnie!

AntoineP
źródło
10
W moim przypadku musiałem wykonać tylko pierwszą część wspomnianą powyżej. Dziękuję Ci!
tm_forthefuture,
Pierwsze rozwiązanie pomogło mi również w pierwszej próbie :)
Saad Qureshi
2
Działało ... ale jak to się stało? Głupi Android. :-)
Ryan Detzel
Pierwszy krok zadziałał dla mnie. Nie wiem, jak i dlaczego Eclipse zdecydowaliśmy się po prostu usunąć te foldery (.classpath nie stawiła się do zmian) ...
ssawchenko
Pozdrawiam .. Działa dobrze :)
vjamit
37

Rozwiązanie :

Krok 1 :

  • Kliknij projekt prawym przyciskiem myszy i przejdź do „Właściwości”
  • Wybierz „Ścieżka budowania Java”
  • Przejdź do zakładki „Źródło” Usuń wszystkie źródła z folderu źródłowego na ścieżce budowania
  • Uruchom ponownie Eclipse

Krok 2 :

  • Kliknij projekt prawym przyciskiem myszy i przejdź do „Właściwości”
  • Wybierz „Ścieżka budowania Java”
  • Przejdź do zakładki „Źródło”
  • Kliknij "Dodaj folder ..." i zaznacz katalog źródłowy "gen" i "src" na ścieżce budowania
  • Uruchom ponownie Eclipse

Finał

Utwórz projekt (y)

Szczęśliwy Coder :)

Vinayak
źródło
1
check gen tylko rozwiązuje problem i nie działa z folderem src
Manikandan
Zmarnowałbym swój dzień. Dziękuję
Prakash
17
  1. Kliknij projekt prawym przyciskiem myszy i przejdź do Właściwości
  2. Wybierz Ścieżkę budowania Java po lewej stronie
  3. Otwarte Źródło Zakładka
  4. Kliknij Dodaj folder ... i sprawdź gen i src
Shubham Das
źródło
To najlepsza odpowiedź. Zwięzłe, rozwiązany problem, bum!
Ely
8

Jest to spowodowane użyciem niewłaściwego importera w Eclipse. Jeśli masz projekty systemu Android, musisz zaimportować je do swojego obszaru roboczego za pomocą Android-> Istniejący kod Androida , a nie Ogólne-> Istniejące projekty .

wprowadź opis obrazu tutaj

Eric Cloninger
źródło
3

Musiałem usunąć cały folder gen w eclipse, a nie z eksploratora plików. następnie wyczyścił i został odbudowany. zabawne, że wystąpiło to zaraz po uruchomieniu raportu Lint HTML.

j2emanue
źródło
To też zadziałało dla mnie. Właśnie usunąłem plik gen, a kilka sekund później został zregenerowany i wszystko wróciło do normy.
Sandy
2

Folder gen to miejsce, w którym narzędzie ADT tworzy plik R.java, który określa definicje zasobów. tzn. Twoje zasoby (kolory, wymiary, układy itp.) są konwertowane na kod i umieszczane w R.java w folderze gen.

Dlatego podczas budowania aplikacji musisz upewnić się, że folder gen jest traktowany przez IDE jako folder kodu źródłowego, ponieważ zawiera klasę R.

W swoim IDE musisz oznaczyć folder gen jako folder źródłowy, aby jego zawartość była budowana razem z Twoim źródłem.

Twój wskaźnik akceptacji jest bardzo niski. Jeśli chcesz, aby ludzie ci pomagali, potrzebujesz wysokiego wskaźnika akceptacji.

Ollie C
źródło
9
ale jak mogę zaakceptować, jeśli nie ma poprawnej odpowiedzi? Sprawdzam odpowiedzi, ale nikt nie jest rozwiązaniem ... Na przykład mój aktualny post, wiem co to jest gen / i jak działa na Androidzie, szukam rozwiązania mojego obecnego problemu. Ale jeszcze go nie mam.
Leem.fin
1

Spotkałem ten sam problem, rozwiązałem go w następujący sposób:

W Eksploratorze pakietów kliknij prawym przyciskiem myszy folder gen, znajdź „Ścieżka budowania - Użyj jako folderu źródłowego” i kliknij go.

To jest to. Mam nadzieję, że to pomoże.

hywl51
źródło
1

Skonfigurowałem SVN dla projektu z tym samym problemem, usunąłem wszystkie foldery i pliki, odzyskałem je ponownie z SVN i nadal nie mam szczęścia. Jedyną rzeczą, która pomogła, było cofnięcie zmian i usunięcie / ponowne zaimportowanie projektów do obszaru roboczego. Mam nadzieję że to pomoże

milosmns
źródło
0

Ostatni raz miałem ten problem, ponieważ za kulisami przełączałem źródło na inną gałąź. Po zamknięciu Eclipse i ponownym uruchomieniu problem zniknął.

themarshal
źródło
0

Miałem kilka takich samych objawów , ale rozwiązałem to inaczej:

Dowiedziałem się, że mam dwa pliki w katalogu do rysowania, które są w konflikcie: icon.png i icon.xcf. To spowodowało porażkę generacji R. Usunąłem icon.xcf z drogi, wygenerowałem R i skompilowałem projekt.

Stephan Henningsen
źródło
0

Przejdź do właściwości projektu, a następnie przejdź do ścieżki budowania Java, następnie Usuń już istniejący folder, a następnie kliknij Dodaj folder, a następnie Dodaj folder źródłowy i gen. następnie naciśnij ok ............ To zadziała .......

Singhak
źródło
0

Moim rozwiązaniem było wklejenie następujących elementów do pliku .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>
Paweł
źródło
0

Musimy również sprawdzić nasze instrukcje importu, jeśli zaimportowaliśmy plik „android.R”, musimy to usunąć.

Jehoshuah
źródło
0

Dzieje się tak, ponieważ plik .classpath został w jakiś sposób wyczyszczony. Ten plik zawiera wszystkie informacje z karty Ścieżka budowania języka Java w obszarze Właściwości projektu. Możesz dodać wszystkie informacje ręcznie, ale istnieje łatwiejszy sposób rozwiązania tego problemu.

Jeśli masz kopię pliku .classpath na swoim komputerze, możesz po prostu skopiować i wkleić go do katalogu projektu.

Patrick
źródło
0

Wypróbowałem podane tutaj sugestie i nadal miałem problem. Ostatecznie okazało się, że Eclipse źle dokonał importu. Z jakiegoś powodu dodał słowa „gen” i „src” na początku linii importu. Musiałem zmienić wszystkie linie importu z

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

do

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

Kiedy to zrobiłem, wszystko wróciło do normy.

panonski
źródło