Menu

#23 Store file in Android

open
nobody
None
5
2011-05-13
2011-05-13
Pep Aguilo
No

I'm using SimpleXML v2.5.3 and when I try to save my file in Android data path, an exception comes. The file is in it, but empty (0 K).

My code:
public static void StoreXML(String a, String b) {
try {
Serializer serializer = new Persister();
MyXML myxml = new MyXML();
myxml.setA(a);
myxml.setB(b);
File result = new File(Environment.getDataDirectory()+"/data/part.aplication/myxml.xml");
serializer.write(myxml, result); //line 25

} catch (Exception e) {
e.printStackTrace();
}
}

The Log:

05-10 16:00:07.771: ERROR/AndroidRuntime(1287): FATAL EXCEPTION: main
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): java.lang.VerifyError: org.simpleframework.xml.core.StructureBuilder
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Scanner.<init>(Scanner.java:89)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.ScannerFactory.getInstance(ScannerFactory.java:66)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Support.getScanner(Support.java:170)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Support.getName(Support.java:232)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Source.getName(Source.java:250)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Traverser.getName(Traverser.java:284)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Traverser.write(Traverser.java:203)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Traverser.write(Traverser.java:186)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1187)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1169)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1147)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1266)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1248)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1229)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at org.simpleframework.xml.core.Persister.write(Persister.java:1208)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at part.tools.EncXML.EncodeXML(MyXML.java:25)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at part.aplication.Entrada.onCreate(Entrada.java:63)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.os.Handler.dispatchMessage(Handler.java:99)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.os.Looper.loop(Looper.java:123)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at java.lang.reflect.Method.invokeNative(Native Method)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at java.lang.reflect.Method.invoke(Method.java:521)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-10 16:00:07.771: ERROR/AndroidRuntime(1287): at dalvik.system.NativeStart.main(Native Method)

I've tested with SimpleXML v2.4 and it works.

Discussion

  • Robert Massaioli

    Does:

    new File(Environment.getDataDirectory(), "myxml.xml")

    work?

    And can you show us the MyXML class and its annotations because the error says that the structure could not be verified.

     
  • Pep Aguilo

    Pep Aguilo - 2011-06-07

    It's not working.

    About

    @Root(name="MyXML")
    public class MyXML{
    private String a;
    private String b;

    @Element(name="A")
    public void setA(String a){
    this.a=a;
    }

    @Element(name="A")
    public String getA() {
    return a;
    }
    @Element(name="B")
    public void setB(String b){
    this.b=b;
    }

    @Element(name="B")
    public String getB() {
    return b;
    }
    }

     
  • Niall Gallagher

    Niall Gallagher - 2011-07-10

    Could you please provide more information. Like the android version perhaps? How are you running this? Is this runnin in Eclipse or on an android device? Also, probably best to send updates to the mailing list.

     

Log in to post a comment.

MongoDB Logo MongoDB