Compatibilité android 2.1 et (3.2 4.2.2 )

Résolu
mazareth Messages postés 290 Statut Membre -  
scinarf Messages postés 1183 Statut Membre -
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 1183 Statut Membre 252
 
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 290 Statut Membre 28
 
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 1183 Statut Membre 252
 
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 290 Statut Membre 28
 
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 1183 Statut Membre 252
 
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 290 Statut Membre 28
 
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 1183 Statut Membre 252
 
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