Compatibilité android 2.1 et (3.2 4.2.2 )

Résolu/Fermé
mazareth Messages postés 270 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 5 mars 2019 - 17 juil. 2013 à 17:07
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 - 18 juil. 2013 à 13:54
Bonjour,
en plein codage j'ai de petit soucis avec android, j'ai commencer en me limitant au 2.1 en me disant " si ca marche en 2.1 ca marchera sur toute les version superieur"

voici mon code
	
                SAXParserFactory fabrique = SAXParserFactory.newInstance();
		SAXParser parseur = null;
		try {
			parseur = fabrique.newSAXParser();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		}

		URL url = null;
		try {
			url = new URL("https://basket-infos.com/feed/");	
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}
                DefaultHandler handler = new ParserXMLHandler();


cette ligne
parseur.parse(url.openConnection().getInputStream(), handler);

fonctionne sous 2.1 mais fait tous planter sur mes autres devices 3.2 et 4.2.2 testés.

Une idée? En mode débug je ne vois rien entre la ligne et le bug.

A voir également:

7 réponses

scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 291
18 juil. 2013 à 11:23
Bonjour

Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.
0
mazareth Messages postés 270 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 5 mars 2019 33
Modifié par mazareth le 18/07/2013 à 11:48
j'ai deja ca:
try {
// On parse le fichier XML
parseur.parse(url.openConnection().getInputStream(), handler);

// On récupère directement la liste des feeds
feeds = ((ParserXMLHandler) handler).getData();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

mais ça me plante quand même sans rentrer dans les exceptions...

Une solution?

edit : mes point de debug

http://img12.imageshack.us/img12/4552/7uol.jpg
0
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 291
Modifié par scinarf le 18/07/2013 à 11:49
catch (Exception e) on verra si c'est pas une autre exception.

Sinon quel est le message affiché dans e LogCat ?
0
mazareth Messages postés 270 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 5 mars 2019 33
Modifié par mazareth le 18/07/2013 à 11:57
alors je suis pas un pro du logcat, il me met :

E/(): Device disconnected: 1

je regarde j'ai pas du mettre le mode debug sur mes autres emulateurs...

edit 4.2.2 en cours de lancement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 291
18 juil. 2013 à 12:01
Essaie ca pour la logcat

avec un import android.util.Log;
dans les imports
et
private final string TAG ="XMLParse";
dans les déclarations
try {
// On parse le fichier XML
parseur.parse(url.openConnection().getInputStream(), handler);

// On récupère directement la liste des feeds
feeds = ((ParserXMLHandler) handler).getData();
} catch (SAXException e) {
Log.d(TAG, "SAX Exception " + e);
} catch (IOException e1) {
Log.d(TAG,"IOException " + e1);
}
catch(Exception e2)
{
Log.d(TAG, "Exception general " + e2);
}

On va bien voir ou ça coince comme ca et surveille les log qui passent avec un filtre sur le TAG "XMLParse"
0
mazareth Messages postés 270 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 5 mars 2019 33
Modifié par mazareth le 18/07/2013 à 13:55
super merci :
07-18 11:49:36.930: D/XMLParse(1464): OTHERS android.os.NetworkOnMainThreadException

j'ai la solution suivante :
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

ou asynctask.

je vais voir merci encore pour l'aide avec le logcat, j'avais pas pensé a ca.
0
scinarf Messages postés 1098 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 291
18 juil. 2013 à 13:54
D'après ce que je vois, il faut placer les lignes de code dans un Thread non principal en utilisant la Class AsyncTask

Voir ce lien pour plus d'info mais c'est en Anglais :
https://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception
0