Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android / Eclipse / Premature end of xml file

Let me start by acknowledging that I did find a similar question on here but there was only one answer and that answer did not apply in my situation, so...

I am just now wading into Android and have come upon a sticking point. I am using Eclipse and have run into a problem trying to create a state-list drawable and keep getting a "premature end of file" error in Eclipse. I have the images in my "drawable" directory. I create a new file, name it date.xml, and type the following:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/dategrey" android:state_selected="true" />
    <item android:drawable="@drawable/datewhite" />
</selector>

The exact error that I am getting is "Premature end of file. Error parsing XML: No elements found.". The has me confused as there is clearly an element in there. What am I missing?

like image 244
Blind Fish Avatar asked Nov 02 '11 16:11

Blind Fish


3 Answers

And I solved it. Man, what a goofy thing to have confound me for two days! I cleaned the project, rebuilt the xml file, and it works fine. I have no idea what was plugging things up as I had never actually tried to run the project so there should not have been an issue with out.out, but it worked. Thanks to all who offered advice. I truly do appreciate your time and attention in helping me with this one.

like image 198
Blind Fish Avatar answered Oct 17 '22 18:10

Blind Fish


You might look at this answer.

That person's problem was that the file was not created as an XML file, from Eclipse's point of view. Try File > New > Other... / select XML.

like image 3
LarsH Avatar answered Oct 17 '22 16:10

LarsH


Try

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
        android:drawable="@drawable/dategrey" />
    <item android:drawable="@drawable/datewhite" />
</selector>

You need to check the state first then call the specific drawable.

like image 1
Andrei Avatar answered Oct 17 '22 16:10

Andrei