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 -
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
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.
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:
- Compatibilité android 2.1 et (3.2 4.2.2 )
- Compatibilite windows 11 - Guide
- Android recovery - Guide
- Begone android - Accueil - Protection
- Presse papier android - Guide
- À quoi sert google drive sur android - Guide
7 réponses
Bonjour
Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.
Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.
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
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
catch (Exception e) on verra si c'est pas une autre exception.
Sinon quel est le message affiché dans e LogCat ?
Sinon quel est le message affiché dans e LogCat ?
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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"
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"
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.
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.
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
Voir ce lien pour plus d'info mais c'est en Anglais :
https://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception