Question

Un étrange problème a surgi ... J'ai vérifié plusieurs sites Web, mais ne pouvais pas trouver quelque chose de mal avec le code ... Mais il retourne NullPointerException ...

try { 

    SAXParserFactory f = SAXParserFactory.newInstance();
    SAXParser parser = f.newSAXParser();
    XMLReader reader = parser.getXMLReader();
    reader.setContentHandler(handler);
    System.out.println(uri_this);
    reader.parse(new InputSource(url_this.openStream())); // i get nullpointerexception here 

} catch (NullPointerException e) {
    System.out.println(e);
}

Dans le catch, je l'ai attrapé NullPointerException et ont rendu imprimer l'erreur.

Le ContentHandler est très bien parce que j'ai des fichiers pour les petits fichiers analysable mais pour des fichiers plus volumineux, il ne semble pas fonctionner. Quel est le problème? Ou ai-je besoin pour une mise en mémoire tampon des fichiers plus volumineux? Je suis désemparés et ont essayé toutes les possibilités, sauf mise en mémoire tampon parce que je ne sais pas le codage pour cela.

j'ai compris une chose: l'objet de la source d'entrée est libérée avant que le reader.parse peut finir. Je ne comprends pas pourquoi ça se passe.

Le LogCat donne ce qui suit (seule la partie erronée):

01-06 15:12:27.145: INFO/System.out(319): http://mywebsite.com/products_xml.php?cPath=43
01-06 15:12:31.094: DEBUG/dalvikvm(319): GC freed 4031 objects / 203424 bytes in 189ms
01-06 15:12:31.505: DEBUG/dalvikvm(100): GC freed 3326 objects / 190192 bytes in 283ms
01-06 15:12:34.274: DEBUG/dalvikvm(319): GC freed 1153 objects / 80432 bytes in 146ms
01-06 15:12:34.646: INFO/System.out(319): java.lang.NullPointerException

Je reçois l'url "url_this" 4 m le constructeur comme arguments.

Était-ce utile?

La solution 2

Hey Thanx tous u. Je suis mon erreur. en fait dans 1 cas il n'y avait pas de texte entre le début et la balise de fin ... d'où la variable i dans texte enregistré était nul ... j'ai appelé .toString () sur ce point. entraînant une exception - NullPointerException. Thanx toute l'aide 4 ur.

Autres conseils

pas assez d'informations pour vous aider ici, mais avez-vous remarqué que vous imprimez une variable appelée uri_this dans la coquille, mais déréférencer url à parser? Alors juste parce que les émissions de fichier journal http://mywebsite.com/products_xml.php?cPath = 43 il ne signifie pas automatiquement que la variable url est initialisé et contient également cette chaîne.

Ou peut-être que la méthode openStream () sur l'objet url (quel que soit le type est) retourne null dans certaines conditions et InputSource ne peut pas supporter d'être passé nulle dans le constructeur. Comme je l'ai dit - il n'y a pas assez d'informations à court snipplet pour résoudre votre problème

.

Vive.

Je viens de publier une bibliothèque pour faire l'analyse syntaxique XML plus facile sur Android 10x que qu'il est actuellement. Il est une couche d'abstraction très petite qui se trouve au-dessus des bibliothèques d'analyse syntaxique de traction xml existants fournis par le moteur d'exécution et vous permettent d'utiliser de simples chemins comme XPath aux éléments pour obtenir des valeurs analysable retour.

Impact de la performance est presque rien sur le dessus de l'opération d'analyse syntaxique existant, il est une implémentation très simple / propre: http://www.thebuzzmedia.com/software/simple-java- xml-parser-sjxp /

vérifier ci-dessus Url http://www.androidhive.info / 2011/11 / android-xml-parsing-tutorial /

modifications apportées à XMLParser.java

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
xml = EntityUtils.toString(httpEntity);

il sera fonctionne InchaAllah ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top