views:

4027

answers:

5

I have an Android 1.5 project in Eclipse and whenever I merely have an xml resource file open the build dies with an error. E.g. if I have the res\layout\main.xml open as the active document it won't build and throws the following error:

Error in an XML file: aborting build. res\layout\main.xml:0: ERROR Resource entry main is already defined.

I then have to delete main.out.xml and switch to any .java file in the project to get it to build.

Do I have something configured incorrectly or is this just an Eclipse or ADT bug? It drove me nuts for an hour before I figure out what the cause was.

A: 

You should be able to have the xml file open, and build. There is an option if you right click on the project and go to android to clean up the project or reset the properties. Try that and see if it resolves the issue.

broschb
If I go to Android Tools-> Fix Project Properties it will work once, but if I switch to another xml resource it fails again. I am definitely not the only one with the issue as I found others discussing it here http://www.anddev.org/viewtopic.php?p=25517
duckworth
Hmm, i'll have to double check when I get home, but I don't recall that error before. Out of curiosity, what version of the SDK are you using and on what OS? I am using 1.6 on Vista.
broschb
+6  A: 

I ran into this as well.

If you have an xml file open and click the 'Run' button, then instead of running your Android project Eclipse will try to run a transform on the xml file. It then creates a new xml file with the output of the transform and adds it to your project. Then the project will fail to run at all because of the existence of the duplicate xml file.

So make sure you don't have any duplicate xml files in your project (look at the manifest file, as well as layout files). The way I work around this is to make sure the project tree has focus (or just select a tab with a java file) before clicking 'Run'.

There is likely a better way to handle this (via a config change perhaps), but I'm pretty new to Eclipse and that's the workaround I came up with :). Hope that helps.

Kevin Tighe
I had this issue before and I configured to automatically launch the last project, if I press the run button.Thats good because you don't have to remember to change the focus to the correct file/tab.The reason seems to be an XML/XSL issue, which seems to think that the xml files are runable for the XML/XSL extensions. The workaround mentioned by the eclipse guys don't work for me, because I can't remove these plugins.Anyway: Configure your run to run always the last project. Works fine for me with 30+ projects :)
WarrenFaith
+1  A: 

Eclipce / Project / Clean ... And run your project again ...

arlen
A: 

@arlen yes "Eclipce / Project / Clean ... And run your project again ..." solved it for me.

John Lockwood
A: 

To configure the run button to always run the previously launched application:

Eclipse -> Window -> Preferences -> Run/Debug -> Launching -> Launch Operation -> Always Launch the previously launched application

Lance Lefebure