可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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 :)
回答1:
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!
回答2:
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.
回答3:
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:
回答4:
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?
回答5:
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.
回答6:
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
回答7:
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.
回答8:
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
回答9:
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.
回答10:
I found that an unwanted resource was causing an issue. As soon as I deleted the resource R.java was generated.
回答11:
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.
回答12:
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
回答13:
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.
回答14:
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?
回答15:
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
回答16:
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.
回答17:
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!
回答18:
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
回答19:
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.