1132

I just downloaded and installed the new Android SDK. I wanted to create a simple application to test drive it.

The wizard created this code:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

but Eclipse gives me the error

R cannot be resolved

on line

setContentView(R.layout.main);

Why?

PS: I do have an XML file named main.xml under res/layout/.

5
  • For those who still experience some problem with eclipse not being able to update/generate R.java. A possible solution is by creating a dummy xml and just delete that xml. In my case this is the solution Commented Jun 25, 2012 at 10:59
  • Honestly, this sounds so stupid (and it is), but modifying the AndroidManifest.xml, then undoing that edit, then saving the file worked for me. If I cleaned the project after that, it broke again. And all this time I thought Xcode was the only IDE that had these kinds of mysterious errors. Commented Dec 22, 2012 at 18:12
  • 3
    Did you try right click on the project -> Android Tools -> Fix Project Settings? Commented Feb 1, 2014 at 10:59
  • 6
    Please check your XMl layout file, if any error in xml you can't generate R.java, and the error comes after bulid and clean also. Commented Feb 20, 2014 at 11:47
  • 1
    Just a tip: when I switched IDE from Eclipse to Android Studio this stopped happening to me. Commented Jul 17, 2014 at 12:13

108 Answers 108

1

I had the same issue, but couldn't find out what xml file caused the error.

Thanks to this post I installed build tools 18.1.1 instead of 19 and it showed me the defective file. It seems that version 19 doesn't show the actual error.

Hope it helps someone :-)

Sign up to request clarification or add additional context in comments.

Comments

1

I had this problem many times and I found that some times "R wont resolve" accrue because:

  1. some bad named Resource have exist like: an image with name My imge.png
  2. or some error in Resources like error in xml files or Error in defining Resource in your forms that won't exist.

in these case you even can't import your own package R to your project. so Go to your resource folder and search for 2 above points.

this will work

Comments

1

Same thing happen to me , and i passed a day to fix this. really this is a stupid error. i am just shearing my experience, may be it would helpful to you . First look carefully when you type this setContentView(R.layout.activity_to_do_list); hear your starting point R.l then eclipse should open a suggestion for you look like thisenter image description here

you import the second one not layout-android.R . the second one is created in your project hear com.example.gridtest is the project package name . then focus your imported section in your code enter image description here

ok look this import com.example.gridtest.R; its important . If you already import this android.R then remove it. Thank you hope it works . ( you don't need to do this always but if you face this kinda problem then do this, hope it would help )

Comments

1

Some answers suggest restarting the computer. I have found that restarting the adb server is enough -- this is particularly true if you've just updated the Android SDK.

Restart adb via a linux shell:

$ cd $ANDROID_SDK/platform-tools
$ ./adb kill-server
$ ./adb start-server

You may need to restart Eclipse so it can reconnect to the restarted adb server. You may need to do a clean/build if Eclipse doesn't compile projects automatically.

Comments

1
  1. Close all files, clean project, restart Eclipse.

or

  1. R is an automatically generated class that holds the constants used to identify your resources. If you don't have an R.java file (it would be gen/eu.mauriziopz.gps/R.java in Eclipse with the 1.5 SDK) I would recommend closing and reopening your project or going to Project > Build all (and selecting "Build Automatically" while there as recommended by Josef). If that doesn't work than try making a new project

Comments

1

I solved my issue with this by putting the resource files directly in the directory specified by Android. I had mistakenly believed that R.raw could contain the entire file directory of my resources. All files must have R.raw as their direct parent directory.

Comments

1

Make sure that all your resources files doesn’t have upper case extension. I found out that I saved some images with upper case extension .PNG. I changed it to .png and everything got back to normal.

Comments

1

It worked for me with Right Click>Android Tools>Fix project properties and some time aftr restarting Eclipse.

Comments

1

a better and more promising solution

  1. close Eclipse and open your Workspace directory.
  2. look for a folder named ".metadata" and delete that folder.
  3. Open Eclipse.

the Error should go away :)

Comments

1

When you have just opened your project, it takes a while for android studio to load things up. It happens a lot with me. I just sit back and watch a youtube video for 5 minutes while it is done loading.

By then the cant resolve symbol R is gone! :-)

If you have checked and re-checked everything mentioned above, made sure that the project has completed building, I'd suggest you to patiently wait... If not clean and rebuild the project.

Comments

0

Another way this can occur is if you start a new project from one of the samples. When you later decide to change the package name from com.example.android.foo to your own domain, you will need to modify several values in the manifest and in individual .java files.

If you're in Eclipse, find the package statement for the .java file and choose QuickFix. There may be several choices there, but the one you want is the one that indicates to "Move 'foo.java' to package 'com.youdomain.android.yourapp'. Save the file and it may autobuild or do as others have suggested and try "Project->Clean".

Comments

0

My R file disappeared and wouldn't generate - the console reported this:

[2010-09-22 16:19:40 - myproject] res\drawable-ldpi\downloadNow.png: Invalid file name: must contain only [a-z0-9_.]

So it turned out that resource names cannot have capital letters - confirm that they are all small letters and contain . and _ only

Comments

0

I had the same problem. In my case had to do with the layout XML file names. I had some of the file names with uppercase letters in them:

screenQS.xml - didn't work!

screenqs.xml - worked!

Comments

0

I faced the same problem after putting some graphics in the drawable folder. There was some error and when I tried to clean, the R.java file was not there.

So I carefully checked and found that there was some files with uppercase file names and some files are having the same name but different file extensions. I renamed those files and had a unique name in lowercase for every file. Remember Android cares about the name of the file, not the extension.

Maybe this can help to you or other readers.

Comments

0

Of the many possible problems that could cause this, this is what fixed it for me.

Right click on project -> properties -> Java Build path-> source.

Then add the gen and src folders. For some reason, Android wanted me to only have the overall folder.

Comments

0

Make sure if you're looking for R.drawable.* that the file exists in your drawable* folders.

Comments

0

I had tried all of the above with no prevail. It turned out PhoneGap was causing a conflict with the Android SDK. After uninstalling PhoneGap, the Resources file started regenerating again. Another project, needed PhoneGap so I re-installed, and once again, the Android project (a different project) stopped auto-generating the R file - Build Automatically was checked, did the Clean, and restarted Eclipse - no dice. I removed PhoneGap and it was working once again. This was PhoneGap v 1.5 with the MDS 1.1 plugin for Eclipse.

Comments

0

Solution:

Project clean after Eclipse restart. They are auto generated, otherwise you are XML inner any component (like button) after Ctrl + Shift + O. It autogenerated the R file and then the error was solved.

Comments

0

One shoudn't try to import android.R. Try to fix all errors that appear in XML files, including the manifest file. When all errors are cleared, R.java will reappear.

Comments

0

In my case I was trying to convert my project into Maven. After while(and thousands of random errors which were saying NOTHING) I tried to undo all of operations. What I didn't notice .project file was changed and it wasn't visible inside Eclipse.

Only reverting .project file to before-maven version helped me fixing this error.

Comments

0

For me it was because of wrong java compiler version. Project Properities -> Java Compiler, enable "Enable project specific settings" and choose your "compiler compliance level"

Comments

0

This worked for me.

I had no 'import android.R' in the brand new project the eclipse wizard created. the default xml layout file was lower case as well.

Problem was eclipse was not generating R.java. No amount of cleaning/restarting was having any effect.

I commented the setContentView and getMenuInflator calls and the make succeeded after which Eclipse generated R.java.

Once R.java was generated, I was able to uncomment setContentView and getMenuInflator.

Comments

0

i tried most method above , but not work my case

finally i found out the adb lost

for mac os , go to android sdk directory

type ./adb start-server

3 Comments

i spent hours on that , so i tried to install android sdk manager. when i try to install package , i was warned my adb lost . so i connect adb again. after that the r.java problem disappear immediately
It may have been a coincidence that it worked after that, but the underlying cause was not solved by restarting adb. This is something that deals with the way the project is built. It was more likely that you restarted Eclipse, cleaned the project, or did something else along the way that caused the R.java file to be regenerated.
i did all the thing u mentioned , restart , clean , rebuild , but none works for my case i just want to share my experience if ppl try all but not work
0

Check that the library projects that you've imported into the app are all open.

And for some reason, if you haven't added anything to the activity, like onCreate(), it won't understand what R is.

Comments

0

I have got this same problem today. I've tried to perform all sdk update using SDK manager . After finishing and restarting IDE problem has been resolved.

Comments

0

There are two ways that R will an error

1) Problem with your layout file ie xml file

2) If you update adt then the R problem will occure. - you have to check properties for the project - goto->Properties ->Java Build Path -> Order and Export and check for all the lib .

It will solve the problem.

Comments

0

first of all look at your gen file if it contains your package name and R.java or no. if it was empty maybe you don't have permission to create new files so exit eclipse than right click, run as administrator and clean your project and everything will be correct.

otherwise you should have an error in your XML file maybe or check the other answers.

Comments

0

I tried most of the options on this thread (and many others) and nothing worked for me. Finally this one worked so I thought to share it with everyone...

I have multiple versions of Eclipse IDE on my machine (because I also work on non Android related projects). Accidentally I created my Android project using a workspace that was being used by another (non-Android) version of Eclipse. Due to this I guess something weird was going on and my R.java was never getting generated!

To fix this, all I did is created a new workspace and magically R.java started getting generated and everything went smoothly...

So while you are trying all other options, give this one a shot too. And hope it'll work for you...

Comments

0

This works.

Step 1:

Download https://www.dropbox.com/s/7nwlrg05ke05tat/GalleryImageview.zip

Step 2:

Load eclipse and load the project > Run and Test will work on the fly

Step 3:

Update here if anything is wrong.

Enjoy. Happy coding.

Comments

0

I followed the advice to install the platform build tools. Then The message

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

appeared in the console. So I followed the advice and set "gen" as a source folder. This fixed the issue.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.