Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - How to regenerate R class? [duplicate]

Possible Duplicate:
Developing for Android in Eclipse: R.java not generating

I have imported a project into my Eclipse IDE, but it's giving me an error since R file is not generated automatically.

How can I edit the R file so that it matches my project requirements?

like image 834
zorglub76 Avatar asked Jan 11 '10 10:01

zorglub76


5 Answers

In another stackoverflow question, somebody answered this : you must get rid of warnings and errors (syntax and links) in your xml files. This plus doing a clean / build project.

Project -> Clean, and choose the option to build the project.

like image 105
Goufalite Avatar answered Nov 19 '22 18:11

Goufalite


I found this happening to me with a broken layout and everything blows up. Relax, it's like that old mistake when you first learned programming where you forget one semicolon and it generates a hundred errors. Many panic, press all the buttons, and makes things worse.

Solution

  • Make sure that anything the R. links to is not broken. If it's broken, ADK may not regenerate R. Fix all errors in your XML files.
  • If you somehow hit something and created import android.R in your activity, remove it.
  • Run Project -> Clean. This will delete and regenerate R and BuildConfig.
  • Make sure Project -> Build Automatically is ticked.
  • Wait a few seconds for the errors to disappear.
  • If it doesn't work, delete everything inside the /gen/ folder
  • If it still doesn't work, try right-clicking your project -> Android Tools -> Fix Project Properties.

What to do if R doesn't regenerate

This usually happens when you have a broken xml file.

  • Check errors inside your XML files, mainly within the /res/ folder
  • Common places are /layout/ and /values/ especially if you've changed one of them recently
  • Check AndroidManifest.xml, I find that often I change a string, and forget to change the string name from AndroidManifest.xml.
  • If you can't find the issue. right click /gen/ -> Restore from local history... -> tick R.java -> click Restore. This doesn't solve the problem, but it will clear out the extra errors to make the problem easier to find.

I know there's already a lot of answers here, but this is the first link on Google, so I'm compiling all the advice here and hope it helps someone else new to this :)

like image 20
Muz Avatar answered Nov 19 '22 19:11

Muz


Ok, I fixed it:

When I changed manifest to target 1.5 version, million errors appeared and only one wasn't related to inexistance of R class - in manifest file attributes "targetSdkVersion" and "maxSdkVersion" did not exist in sdk 1.5

Because of this R class was not able to generate.

like image 40
zorglub76 Avatar answered Nov 19 '22 19:11

zorglub76


I had a similar problem where the R.java file was not being regenerated after I'd added some icons and layout files. I tried cleaning and rebuilding and things got worse since then the original R.java file was gone and still wasn't regenerated. Eventually it dawned on me that there must be compiler errors for the compiler that generates R.java and we aren't being shown those in the console. Fortunately, I had noticed earlier that

  1. it's an error if one .xml file refers to another which is non-existent and
  2. it's an error to have upper case letters in your file names (why is that forbidden, I LOVE camel case).

Anyways, after renaming my icons and .xml files to all lowercase and then fixing all the references inside the .xml files, voila, R.java was regenerated. Just in time to feel good when I stopped for lunch :-)

like image 14
John Klippenstein Avatar answered Nov 19 '22 18:11

John Klippenstein


To generate the R file again:

  1. Modify something in layout->activity_main.xml
  2. Save the file
  3. Project->Clean...

Just delete the R file located in gen directory, and then try Project->Clean. Then build your app again.

like image 8
Muhannad A.Alhariri Avatar answered Nov 19 '22 18:11

Muhannad A.Alhariri