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
La méthode qui fonctionne
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(); }
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 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(); }
PS : Ubuntu 14.04 / Android Studio 1.0.2 / AVD Nexus 5 API 21 x86
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
Partager