Compatibilité android 2.1 et (3.2 4.2.2 )

Résolu
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

  1. Bonjour

    Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.
    1. 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
      1. catch (Exception e) on verra si c'est pas une autre exception.

        Sinon quel est le message affiché dans e LogCat ?
        1. 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
          1. 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"
            1. 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.