Leem.fin
Leem.fin

Reputation: 42592

gen already exists but is not a source folder

I am developing my Android project, After I removed a unused library, I got the error:

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

In my Activity code, all resources from R.java can not be resolved.

I tried, right click on my project => Java Build Path => under "Source" tab, I added gen/ as source. But it does not help with the problem...

Why, how to get rid of this problem?

----UPDATE----

I found that, the eclipse also complain that "Project has no project.properties file! Edit the project properties to set one." , but I do have project.properties file under my project. Why it complains? I have cleaned the project and "fix project properties" but it does not help.

Upvotes: 92

Views: 57971

Answers (15)

Ollie C
Ollie C

Reputation: 28509

The gen folder is where ADT creates the R.java file, which specifies your resource definitions. i.e. your resources (colours, dimensions, layouts, etc) are converted to code, and placed in R.java in the gen folder.

So when you build the app you need to ensure the gen folder is treated as a source code folder by your IDE, as it contains the R class.

In your IDE, you need to mark the gen folder as a source folder, so its content are built alongside your source.

Upvotes: 2

Shubham Das
Shubham Das

Reputation: 1267

  1. Right click on the project and go to Properties
  2. Select Java Build Path on the left
  3. Open Source tab
  4. Click Add Folder... and check gen and src

Upvotes: 17

panonski
panonski

Reputation: 555

I tried the suggestions given here and still had the problem. Finally, it turned out that Eclipse got its imports wrong. For some reason it added the words "gen" and "src" to the beginning of the import line. I had to change all the import lines from

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

to

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

Once I did that, everything came back to normal.

Upvotes: 0

Eric Cloninger
Eric Cloninger

Reputation: 2260

This is caused by using the wrong importer in Eclipse. If you have Android projects, you need to import them into your workspace with Android->Existing Android Code, not General->Existing Projects.

enter image description here

Upvotes: 8

Patrick
Patrick

Reputation: 14278

This happens because your .classpath file got wiped out somehow. This file contains all the information from the Java Build Path tab under Project Properties. You could add in all information manually but there's an easier way of fixing this problem.

If you have a copy of the .classpath file on your machine, you can just copy and paste it into your project directory.

Upvotes: 0

Jehoshuah
Jehoshuah

Reputation: 701

We also need to check our import statements, If we have imported 'android.R' got to remove that.

Upvotes: 0

A.G.
A.G.

Reputation: 2119

My solution was to paste the following into the .classpath file:

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

Upvotes: 0

Singhak
Singhak

Reputation: 8896

Go to the project properties then Go to Java Build Path then Remove already exist folder then Click Add Folder then Add the Source and gen folder. then Press ok............It will work.......

Upvotes: 0

milosmns
milosmns

Reputation: 3793

I had SVN configured for a project with the same problem, deleted all folders and files, retrieved it again from SVN and still no luck. The only thing that helped was reverting the changes, and deleting/re-importing projects to the workspace. Hope this helps

Upvotes: 1

Vinayakkumar
Vinayakkumar

Reputation: 6480

Solution :

Step 1 :

  • Right click on the project and go to "Properties"
  • Select "Java Build Path"
  • Switch to "Source" tab Remove all sources from source folder on Build Path
  • Restart Eclipse

Step 2 :

  • Right click on the project and go to "Properties"
  • Select "Java Build Path"
  • Switch to "Source" tab
  • Click "Add Folder..." and check "gen" and "src" source folder on Build Path
  • Restart Eclipse

Final

Build Project(s)

Happy Coder :)

Upvotes: 37

j2emanue
j2emanue

Reputation: 62519

i had to delete the entire gen folder within eclipse not from file explorer. then did a clean and it was rebuilt. funny this occured right after i ran a Lint HTML report.

Upvotes: 3

Stephan Henningsen
Stephan Henningsen

Reputation: 3783

I had some of the same symptoms, but solved it differently:

I found out that I had two files in the drawable dir that were conflicting: icon.png and icon.xcf. This made R fail generation. I moved the icon.xcf out of the way and R generated and the project compiled.

Upvotes: 0

hywl51
hywl51

Reputation: 551

I met the same problem, solved it as following:

In Package Explorer, right-click the gen folder, find "Build Path - Use as Source Folder" and click it.

That is it. I hope it will help.

Upvotes: 1

AntoineP
AntoineP

Reputation: 3073

I get the same problem.

Two actions, first:

    1.Right click on the project and go to "Properties"
    2.Select "Java Build Path" on the left
    3.Open "Source" tab
    4.Click "Add Folder..." and check "gen" and "src"

second: (because the previous action asked me to remove something... I do not remember what it was...)

    1. Right click on the project and go to "Properties"
    2. Select "Java Build Path" on the left
    3. Open Libraries "tab"
    4. Add an external JAR. Add the Google API that is in your android directory (android-sdk\platforms\android-yourversion

And now it works for me!

Upvotes: 234

themarshal
themarshal

Reputation: 1086

The last time I had this issue, it was because I switched the source to another branch behind the scenes. Once I closed Eclipse and relaunched, the issue went away.

Upvotes: 0

Related Questions