gen уже существует, но не является исходной папкой

91

Я разрабатываю свой проект для Android. После удаления неиспользуемой библиотеки я получил ошибку:

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

В моем коде активности все ресурсы из R.javaне могут быть разрешены.

Я попробовал, щелкните правой кнопкой мыши мой проект => Путь сборки Java => на вкладке «Источник», я добавил gen / как источник. Но с проблемой не помогает ...

Почему, как избавиться от этой проблемы?

----ОБНОВИТЬ----

Я обнаружил, что eclipse также жалуется, что «У проекта нет файла project.properties! Измените свойства проекта, чтобы установить его». , но в моем проекте есть файл project.properties. Почему жалуется? Я очистил проект и "исправил свойства проекта", но это не помогает.

Leem.fin
источник
5
проверьте, что ваша папка src содержит любую папку gen. если есть удалите. . Нет необходимости создавать его вручную. Очистите свой проект один раз.
Падма Кумар
привет, Моя папка src не содержит папки gen ...
Leem.fin 02
1
Произошло со мной после импорта проекта
max.mustermann
1
У вас есть очень хороший ответ, рейтинг которого сейчас составляет 79, но вы еще не приняли его. Вы должны принять это. И ваше «ОБНОВЛЕНИЕ» должно быть отдельным вопросом (и вы, возможно, захотите узнать, ответил ли уже кто-нибудь на него).
steveha 07
Думаю, мой ответ поможет в решении
Ранджит

Ответы:

234

У меня такая же проблема.

Два действия, первое:

    1. Щелкните правой кнопкой мыши проект и перейдите в «Свойства».
    2. Слева выберите «Путь сборки Java».
    3. Откройте вкладку «Источник».
    4. Нажмите «Добавить папку ...» и отметьте «gen» и «src».

второй: (потому что предыдущее действие просило меня что-то удалить ... не помню, что это было ...)

    1. Щелкните проект правой кнопкой мыши и перейдите в «Свойства».
    2. Выберите «Путь сборки Java» слева.
    3. Откройте вкладку "Библиотеки".
    4. Добавьте внешний JAR. Добавьте API Google, который находится в вашем каталоге Android (android-sdk \ platform \ android-yourversion

И теперь у меня работает!

Антуан
источник
10
В моем случае мне нужно было сделать только первую часть, упомянутую выше. Спасибо!
tm_forthefuture
Первое решение также помогло мне с первой попытки :)
Саад Куреши
2
Сработало ... но как это случилось? Глупый Android. :-)
Райан Децел
Первый шаг сработал для меня. Не уверен, как и почему Eclipse решил просто удалить эти папки (.classpath, похоже, не изменился) ...
ssawchenko
Ура .. Работает отлично :)
vjamit
37

Решение :

Шаг 1 :

  • Щелкните проект правой кнопкой мыши и перейдите в «Свойства».
  • Выберите «Путь сборки Java»
  • Перейдите на вкладку «Источник». Удалите все источники из исходной папки на пути сборки.
  • Перезапустить Eclipse

Шаг 2 :

  • Щелкните проект правой кнопкой мыши и перейдите в «Свойства».
  • Выберите «Путь сборки Java»
  • Перейдите на вкладку "Источник"
  • Нажмите «Добавить папку ...» и отметьте исходную папку «gen» и «src» на пути сборки.
  • Перезапустить Eclipse

Финал

Строить проект (ы)

Счастливый кодер :)

Винаяк
источник
1
check gen только решает проблему и не работает с папкой src
Manikandan
Я бы зря потратил свой день. Спасибо
Prakash
17
  1. Щелкните проект правой кнопкой мыши и перейдите в Свойства.
  2. Выберите путь сборки Java слева
  3. Вкладка Open Source
  4. Нажмите Добавить папку ... и проверьте gen и src
Шубхам Дас
источник
Это лучший ответ. Кратко, проблема решена, бум!
Ely
8

Это вызвано использованием неправильного импортера в Eclipse. Если у вас есть проекты Android, вам необходимо импортировать их в рабочее пространство с помощью Android-> Существующий код Android , а не Общие-> Существующие проекты .

введите описание изображения здесь

Эрик Клонингер
источник
3

Мне пришлось удалить всю папку gen в eclipse, а не из проводника. затем сделал чистку, и она была восстановлена. Забавно, это произошло сразу после того, как я запустил отчет Lint HTML.

j2emanue
источник
Это тоже сработало для меня. Просто удалил файл gen, через несколько секунд он был восстановлен, и все вернулось к норме.
Sandy
2

В папке gen ADT создает файл R.java, в котором указываются определения ваших ресурсов. т.е. ваши ресурсы (цвета, размеры, макеты и т. д.) преобразуются в код и помещаются в R.java в папке gen.

Поэтому, когда вы создаете приложение, вам необходимо убедиться, что папка gen обрабатывается вашей IDE как папка исходного кода, поскольку она содержит класс R.

В вашей IDE вам нужно пометить папку gen как исходную, чтобы ее содержимое создавалось вместе с вашим источником.

Ваша оценка очень низкая. Если вы хотите, чтобы люди помогали вам, вам нужна высокая степень принятия.

Олли С
источник
9
но как я могу согласиться, если нет правильного ответа? Я проверяю ответы, но никто не может решить эту проблему ... Например, в моем текущем сообщении я знаю, что такое gen / и как он работает в Android, я ищу решение моей текущей проблемы. Но пока нет.
Leem.fin 02
1

Я встретил ту же проблему, решил ее следующим образом:

В проводнике пакетов щелкните правой кнопкой мыши папку gen, найдите «Путь сборки - Использовать как исходную папку» и щелкните его.

Вот и все. Надеюсь, это поможет.

hywl51
источник
1

У меня был настроен SVN для проекта с той же проблемой, я удалил все папки и файлы, снова получил их из SVN, и все равно не повезло. Единственное, что помогло, - это отменить изменения и удалить / повторно импортировать проекты в рабочую область. Надеюсь это поможет

Милосмнс
источник
0

В последний раз у меня была эта проблема, потому что я за кулисами переключил источник на другую ветку. Как только я закрыл Eclipse и перезапустил его, проблема исчезла.

маршал
источник
0

У меня были одни и те же симптомы , но я решил их иначе:

Я обнаружил, что у меня есть два файла в каталоге drawable, которые конфликтуют: icon.png и icon.xcf. Это привело к сбою генерации R. Я переместил icon.xcf в сторону, R сгенерировал, а проект скомпилировал.

Стефан Хеннингсен
источник
0

Перейдите к свойствам проекта, затем перейдите к пути сборки Java, затем удалите уже существующую папку, затем нажмите Добавить папку, затем добавьте папку с исходным кодом и gen. затем нажмите ок ............ Будет работать .......

Сингхак
источник
0

Мое решение заключалось в том, чтобы вставить в файл .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

Нам также нужно проверить наши операторы импорта, если мы импортировали android.R, должны удалить это.

Иошуа
источник
0

Это происходит из-за того, что ваш файл .classpath каким-то образом уничтожен. Этот файл содержит всю информацию из вкладки Java Build Path в Project Properties. Вы можете добавить всю информацию вручную, но есть более простой способ решить эту проблему.

Если у вас есть копия файла .classpath на вашем компьютере, вы можете просто скопировать и вставить его в каталог своего проекта.

Патрик
источник
0

Я попробовал приведенные здесь предложения, но проблема не исчезла. Наконец, выяснилось, что Eclipse ошиблась при импорте. По какой-то причине он добавил слова «gen» и «src» в начало строки импорта. Мне пришлось поменять все строки импорта из

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

к

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

Как только я это сделал, все вернулось в норму.

Панонски
источник