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.


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!


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 :)


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

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


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.


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.


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.


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


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ął.


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.


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 .......


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>

0

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


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.