IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Parsing de fichiers XML : Exception bien bizarre


Sujet :

Android

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut Parsing de fichiers XML : Exception bien bizarre
    Considérons le bout de code suivant :
    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
    19
    20
     
        	File xmlConfigFile;
        	SAXBuilder sxb;
        	sxb =new SAXBuilder();
        	listDict = new ArrayList<DictioElem>();
        	try
        	{
              xmlConfigFile = new File(addpath+configFile);
        	  document = sxb.build(xmlConfigFile); //Erreur sur cette ligne
        	}
        	catch (IOException e) {
                System.out.println("Erreur lors de la lecture du fichier " + e.getMessage() );
                e.printStackTrace();
            } catch (JDOMException e){
                System.out.println("Erreur lors de la construction du fichier JDOM " + e.getMessage() );
                e.printStackTrace();
            } catch (Exception e){
                System.out.println("Erreur autre " + e.getMessage() );
                e.printStackTrace();
            }
    Il fonctionne parfaitement en java classique, mais me donne sous Android l'erreur suivante : StringIndexBoundsException .

    Une idée du phénomène ?

    Merci.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Elle vient d'où la classe SaxBuilder ?

    Tu à l'air de vouloir parser ton XML via la méthode JDOM... Sous Android, il faut utiliser la méthode SAX.
    http://java.developpez.com/faq/xml/?...XML#saxDomXslt
    et
    http://java.developpez.com/faq/xml/?page=sax#parserSax

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Elle vient effectivement de JDom.
    Je souhaite développer la même application pour différent mobile os, et donc ne faire intervenir les api spécifiques que pour le côté visuel : séparer l'accès aux datas des skins...
    Ne puis-je pas ? Est-ce une illusion ?

    Par ailleurs, dans l'un des liens que tu as cité :
    JDOM : JDOM se veut une API légère, rapide et facile d'utilisation, pour travailler avec des documents XML. Son fonctionnement est "comparable" à DOM. Compatible avec SAX, DOM et JAXP.

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Il est de convention d'utiliser l'API Sax pour parser les XML. Elle offre des avantages notables : le temps de parsing est réduit, et la consommation mémoire est réduite au maximum.
    Ces deux atouts font qu'elle est favorisée dans une environnement mobile (peu de ressource mémoires disponible, et un processeur assez léger).
    Donc je te conseillerais de passer sous SAX, tu aura moins de soucis.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Si je dois, je le ferai. Mais ce n'est pas satisfaisant : je n'ai pas de réponse, je ne sais pas pourquoi ça plante !

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    La classe "SAXBuilder" n'est pas présente dans le SDK d'Android.
    L'as tu réécrite ? utilise tu une librairie compatible Android ?
    Si tu n'as rien de cela, ton plantage vient surement de là.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Certes non, SAXBuilder appartient à JDom.
    Si c'était l'absence de SAXBuilder dans le SDK qui faisait tout planter, cela aurait dû arriver plus tôt, lors de la création de l'instance de SAXBuilder sxb.
    Me trompe-je ?

  8. #8
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Dans mon environnement de dev je n'ai pas cette API / classe. Donc chez moi ça ne compile même pas.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Peut-être ne l'as-tu pas. Mais à la lecture de la méthode, c'est ce qu'il me semblait.

    Aurais-tuy entendu parler d'une incompatibilité du bytecode sun et android ? Qui pourrait être la raison de mon échec actuel.....

  10. #10
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    non ils ne sont pas entièrement compatible.
    Je t'invite à lire cette actualité :
    http://www.developpez.net/forums/d96...es-fondements/

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Par défaut
    Google a en effet conçu Android dès le départ en faisant bien attention de ne pas utiliser de brevets de Sun. L'obligation de recompiler une application Java avec Dalvik pour qu'elle tourne sous Android en serait la parfaite illustration.
    Or donc,pour être sûr que jdom soit compatible, il faudrait que je le recompile avec Dalvik.
    Sais-tu où je puis choper un compilateur dalvik ?

  12. #12
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Si tu compiles tes programmes pour ton téléphone Android, alors tu en as déjà un

Discussions similaires

  1. [JDOM] Problème avec le parsing du fichier XML
    Par nounouuuuu201186 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/02/2012, 14h08
  2. Réponses: 3
    Dernier message: 14/11/2009, 09h26
  3. [SAX] Resultat d'un parsing de fichier XML
    Par t.n.b.g dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 07/03/2008, 16h12
  4. Tester si un fichier xml est bien formé
    Par med_ellouze dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 22/08/2007, 18h26
  5. Parsing de fichier XML en C
    Par longbeach dans le forum XML
    Réponses: 12
    Dernier message: 12/12/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo