SetContentView cannot find resource - android

I am new to Android environment. For some reason, I am getting errors when trying to build. Specifically, these types where by the activity_main.xml layout file is being reported as not being found. However, I do see it there. There seems like there might be something messed up in my environment but I don't know what? I consistently get these types of error whether the resource exists or not.
setContentView(R.layout.activity_main);
Any help appreciated.

I'm assuming you are importing the wrong "R" file..
Check your imports in your activity.. see if you have import android.R;
If so, delete it.. and make sure you import the proper R file for your own project

Try these.........
- 1st when you create a ,XML file like main.xml file, you will need a Class that extends Activity and that must be mentioned in AndroidManifest.xml file.
- Clean the Project.
- Close Eclipse, and start it again. Don't Restart but Close it. Eclipse does behave weirdly.

If you have an error in one of your XML files, the resource compiler may not have generated an R.java file. This would then cause errors when you reference any resource ID in code.
Always fix any problems in the XML files before worrying about resource IDs not being found in code.

Check if activity_main.xml exists in the res/layout folder (make sure it's not inside res/xml instead). If it exists in the correcti directory, try opening it and check if there are any errors.
Also, rebuild your project by running Project -> Clean to make sure all resources are reloaded.

Check for typos in your package names. If you have renamed any of your package folders, 90% of the time this error is caused by typos in the AndroidManifest.xml file. Check if your matches your package names on app/java/com/packagename/yourappname

Related

import R resource (android) issue

What may be the issue that while Importing content R.menu.content and clicking on issue resolver there is no project R visible, only the android.R one. I might add that there is no project resources import yet in the file, and resource do exist.
Regards
Generally, each time whenever there's a problem with R not been generated, or even disappeared, its because due to some problem in the XML layout file that prevented the application from being built. Please check your res folder and fix any error that are present in that first for the R file to be generated.
Check your resources,fix errors then goto project and clean project and make sure build automatically is selected.Restart IDE.Your problem will be solved.
This is usually due to a subtle error in the project.Things that you could check in order of priority:
As previously mentioned by Antromet, check your xml files (layout, animations, resources etc. . . ) for any error.
Check your packaging. For example your R could be generating under your primary package com.example.main.package But you are trying to import R from com.example.secondary.pacakge So it may not find R. Try manually typing to confirm.
Ensure all your external references are building. I have had R refuse to generate because an external library I was referencing got deleted.

R.java not getting generated with Intellij Idea 12

I am brand new to android development and i am working with IntelliJ Idea 12.
Everything is set up correctly but one problem i am facing is that my R.java file inside gen folder does not have the code that should have been there.I think this code should have been auto generated but it's not present there.
Here are the links on on what my project structure looks like:
I could not post more than two links, so here is the link to gallery:
http://postimage.org/gallery/19189wei/
It contains my string.xml , main.xml , R.java , HaikuDisplay.java
So i wanted to know where's the problem?
I wouldn't bother looking at the R file - mine is empty as well and it doesn't matter. Try type R. and see what's available. If you're not setting your stuff, make sure you're not Importing Android.R in your imports - that will override your R and use the one in the SDK directory. Hope that helps.
I have the same problem with idea 12 (and there were no such problem in idea 11). To fix it you may need to check the following:
Open Module Settings(F4)/ProjectName/Module SDK is set to Android [version]
Folder 'gen' exists in the project root and set as src (actually it can be, and will be, empty, but I cant figure out why it does not work without it.)
Update AndroidManifest.xml (just add space somewhere and save it).
If idea still can not find any of your ids or strings - try to open it one by one, and update with space :)
After that idea will find, that there is many xml's in layout folder, and will know about all ids, xmls and strings.
But R.java file will still be empty, gen folder will not contain anything more then empty BuildConfig.java file, and there will be no other R.java files, that contains all this constants.
It looks like idea 12 as opposed to idea 11 store its generated R.java constants in project folder (.idea), and if you are using 'pom.xml' as project description - you will need to check all this points again after reloading pom.xml file.
Check your AndroidManifest.xml file. Idea 12 put two element under , there can be only one. Remove which ever you want, rebuild.
Additionally you can check the package value in manifest element. Make sure it corresponds to your project. Idea 12 generated the following for my project, which has com.awesome.skynetclient as root package:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exeample.SkynetClient"
android:versionCode="1"
android:versionName="1.0">
Removing auto-added import android.R; from top of the file worked for me.
I found this too, may be it is because the IDE wants to prevent you from editing the R.java file by mistake.
I have the same problem with Android Maven project. My solution was that I look into Project History and find that my Manifest.xml file was somehow modified and paths to files was changed, but GOD knows that I did not make that changes. So I just revert this changes and rebuild project.

A resource exists with a different case

I'm unable to build my android app due to a strange error:
Description Resource Path Location Type The project was not built due
to "A resource exists with a different case:
'/ProjectName/bin/classes/com/Name/ProjectName'.". Fix the
problem, then try refreshing this project and building it since it may
be inconsistent ProjectName Unknown Java Problem
My file structure is the following: http://pastebin.com/6P6mEftD
I checked for files that had almost the same name and I couldn't find any. This was marked as the solution in a previously asked question that described the same error.
I had the same "resource exists with a different case" error.
The fix I had to make was in the AndroidManifest.xml file. My "package" parameter in the manifest XML tag did not exactly match the package name in my Java files. I suggest you look in the manifest XML and see if you spot the naming issue there.
I just had this error and I studied a lot to solve it.
Here it goes:
All answers you might find, may be correct because there're differents causes for it.
To solve this issue, you must look into the "R.java" generated in the "gen" folder.
Once you opened it, look for two class that has the same name but is written with different cases. Example (mine): "String" ... "string"
Then, you will figure out that you miss spelt some thing. You never use Upcase letter to call strings at the xml file.
Example: android:contentDescription="#+String/imageView2"
DO NOT write string with capital S.
use:
android:contentDescription="#+string/imageView2" instead.
Once you locate the string you need to find where you put it with the find command.
Once you correct the "grammar", just clean your project.
Pease.
TMA.
Try to remove the bin folder and "Clean project".
I had this problem.
I follow Pauland and I deleted my bin folder. But nothing happened. Then I close the project and it openned with no errors anymore.
Assure Package name has exactly same in Android Manifest and in the sources
I copied project 'src' files from one project to another. In there I made a mistake in renaming the project folder as (com\company\projectName). The project folder name is expected to be all lower case. Then I deleted the bin & gen folders and rebuilt the project. All set.
Hope this helps.
I fixed it by removing all files under the target directory and letting the automatic rebuild execute.
I modified my AndroidManifest.xml but somehow it was rolled back when I tried to rebuild.
Than I tried edit class name from gen folder using 'Refactor > Rename'.
I changed my class name from xxxxLib to xxxlib (lowercase).
It solved my problem.
1_ match "package" parameter in the manifest XML tag exactly with the package name in Src Java files.
com.example.myapp is not com.example.MyApp
2_ delete all things in Gen folder
3_ Project -> Clean
enjoy :)
My problem was the incorrect package names defined in AndroidManifest.xml file, remember the packages name are case-sensitive, then just a Clean > Build Project
update: sometimes is necessary a "hard reset" of the project deleting the folders /gen and /bin, then Build Project

Android R.java not being recognized properly

I am having problems accessing the elements within the classes in the R.java file. I recently reformatted my computer and when I reinstalled eclipse, the proper sdks, and imported the proper files I am left with errors that prevent me from accessing my xml files. For example:
R.layout.my_layout will not be able to find "my_layout." In fact I can't access R.id, R.string nothing! The R.java file looks okay, everything is in there and I'm not getting an error for R or id/layout/string etc. its just the elements within the class that are unable to be found for some reason. Here is an actual error example:
Description Resource Path Location Type
main cannot be resolved or is not a field CatalogNumber.java "package name"
"main" is an xml file in layout. I actually just noticed that it does not exist in the R.java file however there are some xml files that are represented there that are still giving errors. What do you think?
First please go to project > clean. If this doesn't work look at your imports and if there is an import R. Android might have deleted it. Also check your xml files. One of them may have an error.

Android - How to regenerate R class? [duplicate]

This question already has answers here:
Closed 10 years ago.
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?
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.
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 :)
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.
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
it's an error if one .xml file refers to another which is non-existent and
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 :-)
To generate the R file again:
Modify something in layout->activity_main.xml
Save the file
Project->Clean...
Just delete the R file located in gen directory, and then try Project->Clean.
Then build your app again.
You can also right click on the project -> Android Tools -> Fix Project Properties. That should cause the R.java class to be re-generated.
I reopen eclipse, edit one of my xml files and then discover that my activy class was refering android.R instead of my package "R" :-)
My problem was in Manifiest file.
I have deleted launcher icons and did not reference the new ones on Manifiest :)
In order to regenerate the R.class, you will have to try multiple techniques.
Remove any R imports from your java source files: import R.android
Make sure to open the "Problems" panel by going to Window->Show view->Problems
If you do have some errors in your xml resources, you will need to correct those errors. In my case I had to change my id attributes to include the "+" sign as follows: android:id="#+id/grp_txt"
Now proceed to do Project->Clean
Finally do Project->Close, Project->Open
The "+" sign indicates a new resource id and the forces the aapt tool to create a new resource integer in the R.java class.
If you use Intellij IDEA you can click Build - Rebuild Project
If you accidently deleted your R in eclipse by "project clean" (don´t do this)
Rightclick on your Projectfile -> Restore from local History...
recreate your R
My Case:
Broken xml caused bug in R. (because of ä, ö, ü, letters in id)
clean project deleted my R.
What I Did:
recreated R from local History
checked for wrong R imports in my classes (like import android.R) and removed them
fixed that xml file and saved its content in an external txt file
deleted the xml completely from my project.
ran my project one time
put that fixed xml back at its place
and...
gave my girlfriend a big hug without a reason after freaking out like a Hulk.
My problem was errors in my XML files. Errors aren't always automatically detected in the Android Common XML Editor or Android Common Manifest Editor, so try using the regular text editor instead. For example, somehow some random gibberish from a .java file had been inserted into my manifest and strings.xml files.
Right click on any XML files (most likely in the /res folder or AndroidManifest.xml) and click "Open With," then select "Text editor." Make sure everything looks good and then save. Also, make sure to enable "Build Automatically" for your project. I had deleted my R.java file and it was rebuilt from scratch, so no need to restore it from local history.
Try to add a new "Android XML file" to, for example, the /res/layout folder. This might cause the plugin to to regenerate the R class.
You can just modify any xml files in /res folder and even just add a space and save, it will be regenerated.
I had the same problem - "R" missing. And none of the advices given here helped. Fortunately, I've found the reason - somehow Eclipse got lost the Project-Properties-target. It was unset. I don't know till now, what had done it, but setting it back helped.
So, attention - missing R can mean the missing target, too!
I have tried all the solutions above. But they unfortunately it did not solve my problem.
My R.java was gone as soon as I pasted a new picture to my drawable folder.
After reading the answers for this question I tried to delete the icon I have previously pasted (while Build Automatically Enabled) and everything was fine afetr. Hope this will help someone!
I had that problem and I just right-clicked on packet of my project and Build Project. Instantly the class R appeared in packet gen.
In case someone else finds this thread when Googling, like I did:
I had what appeared to be the same problem for a while, and after some digging I noticed that the R.java file got correctly built, but was ignored for only one of my source files. The problem for this particular file was that Eclipse had "helpfully" added the following line at the top:
import android.R;
That effectively hides the project R stuff. Just remove it and everything will be fine again...
You can use Eclipse's "Restore from local history" to restore your old R file if it has been deleted. After that you possibly see what keeps Eclipse from building your files (I've seen other errors than before which really helped fixing the problem).
May be you can go to project properties and select Android option and then define the target for the project. Once you apply the selected target API for this project, it will automatically generate R.java.
Mostly a problem with an invalid layout file.
Open the 'Problems' view and look for erros in XML layout files. Fix them and the R class will be recreated.
In my case there wasn't a real error. The problem view showed an error in a xml layout. The editor showed the xml error too. Just reformatting the xml using the auto formatter with 'ctrl-f' 'fixed' the xml 'error' and the R class was recreated.
You can just delete the R.java file from your project and it will regenerate assuming you have build automatically enabled. If you do not have build automatically enabled simply goto project->build all
For me, it was a String value Resource not being defined … after I added it by hand to Strings.xml, the R class was automagically regenerated!
This problem normally happens when importing from an existing project. Try to fix all errors from all .xml files in res folder, as well as Manifest file. Most likely the errors are shown at "match_parent" parameter, change it to "fill_parent". When all errors are clear, R.java will be appeared.
If there is no error on any .xml file. Try edit any xml file (like delete a letter and type it back) and then save the file, this will cause to generate the R.java.
I have a problem that the findViewById(R.id.edit_text) but return a TextView not a EditText. I think the problem is the R.id class has wrong id number, then, i clean the project then its works fine.
In my case it was an improperly named XML file that caused my R file not to rebuild. This did not show up in the package explorer, but it was shown in the LogCat. Look out for any warnings there about your res files. No matter how many times you clean your project, the R file will not rebuild until those errors are taken care of.

Categories

Resources