I have a big Xamarin Android project where I recently added few new layout files. Ever since I added them, the build always failed with Resource.Id not found errors (complaining about not being able to find the UI components' ids, even though they are there, there are NO spelling mistakes). I tried cleaning and rebuilding, deleting bin and obj folders and cleaning & rebuilding, adding "MSBuild:UpdateGeneratedFiles" to properties of the project and then closing VS, cleaning & rebuilding - none of that worked. Since the errors were saying the UI components' ids were not found, these UI elements weren't included in Resource.Designer.cs file, so I figured that is the issue. I tried deleting Resource.Designer.cs file and rebuilding, and it got updated and included the missing UI components, but the issue is still there. I am kind of blocked at this point, any help would be much appreciated...
The errors look like this:
Error CS0117 'Resource.Layout' does not contain a definition for 'layout_exceptionfooter' BrockSolutions.SmartClear.GateScanning.MobileClient.Android C:\git\SmartSuite\SmartClear\Libraries\GateScanning.MobileClient.Android\Components\PassengerScanExceptionFooterComponent.cs 25 Active
enter code here
At first, check these layout files is in the layout folder which belongs to the Resources folder.
And then, check the file properties of them and make sure that the Build Action is set as AndroidResource. You can check it by right click the file and click the properties.
Finally, if your project is in a xamarin.forms project, please check the namespace of the .cs file.
If the problem still exists, you can post the code you used the layout files and an example of them.
I am making an Android app. Due to some reasons, my current project files got all messed up. To solve this issue I created a new project in Android Studio and copied the files from the previous project to this new project.
I carefully copied all the layout, values, java files at their right location. I replaced the relavant content from the new manifest and gradle files with new content.
Everything looked perfect and then I got the "Cannot resolve symbol R" error.
I tried all the solutions like Invalidate Cache/Restart, Sync files with gradle, Rebuild Project, Clean Project etc. etc. etc.
Still couldn't fix it.
Can someone help?
Edit
Problem Details
1. I have correct package name everywhere (in AndroidManifest too)
2. I have proper and valid xml files
3. Even if I copied the files from other project the I've kept the project name and package names exactly the same.
4. I have only one app module.
Try to remove .R line from every java class .
You might have an error in one of your xml files, like a duplicated xml header. Check for every single one.
You can also update Android Studio as it now tells you the file and location of the error.
I strongly suggest you copy and paste your codes to individual right places if you want to move these to a new project. Copying folders and files to a newly created project would not work as there could be some lines that include your old folder paths
For example, your old project was in C://StudioProjects/YourProjectName so your codes should be in C://StudioProjects/YourProjectName/app/src/main/java/com/example/AppName but if you directly copy a file or folder to a newly created project, you could end up referencing the wrong path like C://StudioProjects/YourProjectName/app/src/main/java/com/example/NewAppName and this could blow your XML file which will lead to R cannot resolve symbol R.
Even though you put your folders in the same path, reference numbers changed in the new project.
I opened my project in Android Studio yesterday and got red everywhere with 'Cannot resolve symbol' as the description. It was completely random as no changes had been made to either the project or AS since the last time I opened the project. I ended up updating Android Studio to 2.0 and trying a bunch of solutions I found online but nothing works.
Like this guy, I have already tried:
Rebuilding the project
Cleaning the project
Syncing with Gradle Files
Closing the Project, closing AS and relaunching / reopening
File > Invalidate Caches / Restart
Examining Lint, didn't see anything obvious
Double checking all support libraries are up to date in the SDK manager
Examining my Build.gradle, although no changes and it's the same as usual, the way it was working all the time.
I have also tried the following steps (from the accepted answer):
Exiting Android Studio
Backing up ymyour project
Deleting all the .iml files and the .idea folder
Relaunching Android Studio and reimporting project
I also tried:
Removing the 'proguard' entry in build.gradle
Changing to "Use default gradle wrapper" in preferences
Another solution is to move 'buildTypes' in build.gradle but 'buildTypes' is already at the bottom of the Android section
Don't mark this as a duplicate if the "duplicate" is someone who fixed the same problem by doing something that didn't fix my problem.
Here are some screenshots:
As you can see, the color 'white' does exist:
R errors everywhere as well:
These errors are everywhere too:
Why are there two res directories and why is the one with the necessary resources a sub-directory of the java directory? Could this be related? Screenshot here:
EDIT: I created a drawable directory in the main res directory and added one of the drawables that won't get picked up by build variants. It removed the relevant 'Cannot resolve symbol' error. But when I deleted the main res and tried try to move the whole res directory in the java subdirectory to the main directory I got the following error:
EDIT: I managed to build without errors by deleting the outer res directory, copying the one inside the java one, pasting that into the main directory then deleting the one inside the java directory. How these got moved around like that I do not know. Probably caused by following the 'solution' of deleting and importing the project again. Whether it actually runs properly on a device I do not know as Android Studio is hanging for the last 20-30 minutes (as it does sometimes). If it does I may answer my own question with what I did to finally fix the problem.
The error shows you that you do not have value white in color constants.
Please check all your resource files (colors.xml, strings.xml and so on) - do you have line
<color name="white">#FFFFFF</color> in one of them?
Try creating a new project entirely, and copy and paste everything. XML files, classes, etc. That should solve your problem.
Eventually solved it by moving (by copying, pasting and deleting since AS wouldn't let me move it) a res directory that had been misplaced from deleting and re-importing the project to try and fix it initially. I don't know which one of the solutions worked but one of them must have. I just had to fix my project again after the re-importing 'solution' broke it. The res directory was a sub-directory of java when it should have been one level up as a sub-directory of main.
I have noticed that on Ubuntu with AS, if you manually add a directory to the src/main/assets folder it triggers the infamous "cannot resolve symbol R" error. For example: I tried to add an index.html along with it's css/ and js/ dir and files and my R.layout and R.id arguments started getting the red highlighting.
Upon deleting the newly added directories and leaving the index.html and thus rebuilding the project to clean it, the error went away.
My questions are: why, and is there a safe way to "import" directories into the assets folder in my project with things going completely crackers in AS?
Thanks in advance.
Yup, looks like a bug in AS 0.43 when using Ubuntu. Recommend upgrading to 0.53 and hoping for the best, or don't use AS until it reaches 1.0. Hooray for testing preview software!
Recently I have been having quite some problems with R.java file. Now I have decided to do a backup and delete the file to see what happens.
Nothing happened, so I created an empty R.java file and hoped for the best. Now Eclipse seems to figure out that the file was tampered with and even issues a warning:
R.java was modified manually! Reverting to generated version!
And that's all there is. I tried building it manually but got no results.
So, I have two questions:
what should I do to force Eclipse to regenerate the file
what is happening here? How is the file created, where is the code that is generating the file?
I would appreciate any help. As usual the problem occurred just a few days before the deadline :)
I had a problem getting my Android app to compile, with seemingly inexplicable errors about failure to generate R.java.
The problem was caused by my previously killing the Android emulator during the build. Don't do that! A clue was the appearance of several left over *.out.xml files.
The solution was to select the project, click Project->Clean, and then manually delete all the *.out.xml files. Only then could I click Run->Run and have a successful build.
One more thing: I'm using Eclipse. I had to make sure that the project was selected in Package Explorer, and not just some random source file. Easy to not notice!
R.java is autogenerated on build. It's content is based on the resource files (including layouts and preferences).
When you deleted it, it was recreated, but if you create your own, you will get into trouble as the build system will not replace it.
You can simply delete it again (manually or by choosing Project->Clean) and rebuild your program.
I had this problem several times, and most of the times it is caused by some mistake in the "res" files, check everything is OK in all your res files, mainly XML, and after you can built.
For example, two common causes of this problem can be:
Didn't properly spell the name of a property in a Style in a XML file.
Didn't properly close a string in the XML of a locale file.
I found the problem - I have created a 9patch image with the patch area defined only on the Y axis (I was trying to prevent resizing on the other one).
The question remains: Why isn't there a warning about the error? Or if there is - where is it buried?
Sorry, but try to check the output in Eclipse. May be you have some errors that prevents Eclipse to finish build proccess(check your AndroidManifest.xml, is it correct?).I mean, that you should check all your resource files(string.xml, layouts, ...) and interfaces(*.aidl), may be there are some problems(inconsistent syntax, or something....) that prevent eclipse to generate R.java.
I had the same issue and it was that I had named a resource file (a .png image) using uppercase letters. (ImageButton001.png instead of imagebutton001.png).
Afther changing the name of the file my R.java came back.
Rgards,
Juan
If there's insufficient free memory the build tool will silently fail (Eclipse will not show any errors or report anything in the error log). Close your other open applications (e.g. the emulator and browser) then add a space to the application manifest file and save it.
As ponkin stated - you probably have one single problem that causes R not to re-generate itself, because of which you now have one million and one problem.
Do not try to create R class yourself. Try to think of the last XML you've been messing with, and check it for errors
I've had the same problem here
Make sure there are no errors is your Manifest file.
If you delete the resource string app_name in /res/values/strings.xml, it doesn't know how to generate R.java right.
I found this a problem when doing the HelloSpinner tutorial.
I found that an unwanted resource was causing an issue. As soon as I deleted the resource R.java was generated.
I've had this problem, to rebuild R.java I cut the code in the xml file I've just been working on (or try others if this doesn't work), deleting the file then creating another with the same name and pasting the code back into it. Hope this helps.
Something that can be good to know is that if an XML file contains a ?, then R.java is not regenerated and the error is not shown in the XML file (sometimes it shows up after a while)
I you have a line similar to:
< string name="questionmark"\>?< /string> <br>
try to change the ? to something else and see what happens to the R.java file - worked for me
I had a similar problem, I had renamed a .wav file in the Raw folder with a capital letter. When I changed to all lower case, cleaned the project and it rebuilt R.java fine.
As others stated, stay away from creating your own R.java file. I ran into the same problem when I first started with Android, and it took some time to figure out what caused by compilation errors.
What were you trying to do with the R.java file?
I had the same problem. I just went to:
Project -> Properties -> Android
and chose the right Emulator for my project, I had 3 different to choose from in that moment. I realized that i changed the Emulator in some given moment. So try to change the Emulator, that might help!
Good luck
I had the same issue with IntelliJ. The problem was that I had app_name defined twice in strings.xml For some reason, IDEA inspections didn't pick this up automatically.
I read this on another site and it helped me:
"If that doesn't fix your problem, try modifying your AndroidManifest.xml (just add a space and save). I've heard that will force the R.java to rebuild. "
So just add a space in the manifest file and then rebuild!
As a side note, usually those *.out.xml files are generated by trying to build your project whilst an xml file is focused in the editor
I had similar problem.Cleaning project didn't solve the issue and there was no error in the code or the uppercase or spaces in file names.
The solution was going to a popup window which came when you choose PROJECT-->CLEAN and then UNcheck the "Start a build immediately" option. Clean the project. Close and reopen Eclipse and then build the project (PROJECT-->BUILD).
The question remains why simple clean and build without closing Eclipse didn't worked.