Compatibilité android 2.1 et (3.2 4.2.2 )

[Résolu/Fermé]
Signaler
Messages postés
270
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
-
Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
-
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.

7 réponses

Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
284
Bonjour

Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.
Messages postés
270
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
32
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
Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
284
catch (Exception e) on verra si c'est pas une autre exception.

Sinon quel est le message affiché dans e LogCat ?
Messages postés
270
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
32
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
Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
284
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"
Messages postés
270
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
32
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.
Messages postés
1098
Date d'inscription
samedi 18 novembre 2006
Statut
Membre
Dernière intervention
25 septembre 2014
284
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