Bonjour,

Je désire encoder en XML comme je le fais habituellement. Je change de packetage pour celui d'Android.
Une exception apparaît à l'exécution au moment du new XMLEncoder (fos). (pile d'exceptions ci-dessous)
La méthode a été testée/tracée jusqu'au new. (code ci-dessous)
Une méthode de substitution pratique la "XMLisation manuelle" à base de println() et fonctionne parfaitement. (code ci-dessous)
Le problème est identique sur un autre périphérique.

Où est le problème ?

Cordialement

La méthode en erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
private void saveXML (String nomFichier) throws IOException
{
           file = new File(nomFichier + ".xml");
           file.createNewFile();
           FileOutputStream fos = new FileOutputStream(file);
           XMLEncoder encodeur = new XMLEncoder(fos);
           encodeur.writeObject(parcelle);
           encodeur.close();
}
La méthode qui fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
private void saveXMLmanuel (String nomFichier) throws IOException
{
          file = new File(nomFichier + ".xml");
          file.createNewFile();
          PrintStream out = new PrintStream(file);
          parcelle.print(out); // which is a long long long list of println() !!!!
          out.close();
}
Un extrait de la pile d'exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
01-30 19:28:38.509: E/AndroidRuntime(1844): Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Choice;
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at com.googlecode.openbeans.Encoder.<clinit>(Encoder.java:120)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at org.universsel.estay.arpenteur.Enregistrer.enregistrerXML(Enregistrer.java:149)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at org.universsel.estay.arpenteur.Enregistrer.enregistrer(Enregistrer.java:124)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	... 13 more
01-30 19:28:38.509: E/AndroidRuntime(1844): Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.Choice" on path: DexPathList[[zip file "/data/app/.../base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
01-30 19:28:38.509: E/AndroidRuntime(1844): 	... 16 more
01-30 19:28:38.509: E/AndroidRuntime(1844): 	Suppressed: java.lang.ClassNotFoundException: java.awt.Choice
01-30 19:28:38.509: E/AndroidRuntime(1844): 		at java.lang.Class.classForName(Native Method)
01-30 19:28:38.509: E/AndroidRuntime(1844): 		at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
01-30 19:28:38.509: E/AndroidRuntime(1844): 		at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
01-30 19:28:38.509: E/AndroidRuntime(1844): 		at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
01-30 19:28:38.509: E/AndroidRuntime(1844): 		... 17 more
01-30 19:28:38.509: E/AndroidRuntime(1844): 	Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
PS : Ubuntu 14.04 / Android Studio 1.0.2 / AVD Nexus 5 API 21 x86