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. 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.
    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. 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. catch (Exception e) on verra si c'est pas une autre exception.

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

              Essaie de faire un try catch sur cette ligne pour avoir l'exception et en savoir plus sur le problème.