IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Erreur pour charger une photo


Sujet :

Android

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Erreur pour charger une photo
    Bonsoir

    Je veux afficher une image d'internet dans mon application. J'ai suivi le tutoriel de ce site (http://mathias-seguy.developpez.com/...ihm-dynamique/ 3-2-7-2) mais mon application s'arrête quand jarrive sur lactivité

    Voilà la fonction que jutilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private Drawable getPicture (String urlPath ) {
    		// Le drawable à renvoyer
    		Drawable drawable = null ;
    		try {
    			// Récupération de l'URL à partir de sa représentation sous forme de String.
    			URL URL = new URL (urlPath);
    			//Ouverture de l'inputStream associé à cette URL pour sa lecture.
    			InputStream is = (InputStream) URL.getContent();
    			// Construction du Drawable à partir de ce flux entrant.
    			drawable = Drawable.createFromStream (is,"src");
    		} catch (IOException e){
    			//
    			// Si une exception se produit faire quelque chose d'intelligent.
    		}
    		// Renvoyer le résultat.
    		return drawable;
    		}
    Et comment je lutilise :

    image = (ImageView)findViewById(R.id.image);
    image.setImageDrawable(getPicture(url));

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Points : 118
    Points
    118
    Par défaut
    Est-ce que tu as bien pensé à mettre la permission internet dans ton manifest ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.INTERNET" />

    Il n'y a que très peu de code, mais je pense que tu n'utilise pas d'AsyncTask pour récupérer ton image (le traitement peut être long et il ne faut pas que ce soit dans l'UI). Si ça ne te pose pas de problème maintenant, ça en posera sûrement dans le futur, il faut donc en utiliser.


    Et sinon, met une trace de ton logcat pour nous éclairer =)

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Oui oui j'ai bien mis la permission internet ^^

    Par contre je n'ai pas du tout fait d'AsyncTask , le probleme doit forcement venir de là alors
    Je suis pas chez moi donc je peux pas te dire ce qu'affiche le trace du logcat. Mais peut tu me montrer comment utiliser un AsyncTask pour charger mon image stp ?

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Déjà remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    // Si une exception se produit faire quelque chose d'intelligent.
    par un truc genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e("GetPicture","Erreur de récupération de l'image",e);
    Et puis nous fournir le logcat (filtré sur l'application), il doit contenir un truc genre "exception : " puis une floppée de " at" avec eventuellement des "caused by" etc... c'est ce qu'on appelle la trace de l'exception, et pour aider, il nous la faut
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Voila le logcat par contre je sais pas comment développer le "11 more" tout en bas.

    02-19 17:22:30.350: E/AndroidRuntime(20714): FATAL EXCEPTION: main
    02-19 17:22:30.350: E/AndroidRuntime(20714): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exs.photos/com.exs.photos.Photos}: android.os.NetworkOnMainThreadException
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.access$600(ActivityThread.java:128)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.os.Handler.dispatchMessage(Handler.java:99)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.os.Looper.loop(Looper.java:137)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.main(ActivityThread.java:4517)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.lang.reflect.Method.invokeNative(Native Method)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.lang.reflect.Method.invoke(Method.java:511)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at dalvik.system.NativeStart.main(Native Method)
    02-19 17:22:30.350: E/AndroidRuntime(20714): Caused by: android.os.NetworkOnMainThreadException
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.net.InetAddress.getAllByName(InetAddress.java:220)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.net.URLConnection.getContent(URLConnection.java:194)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.net.URL.getContent(URL.java:447)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.exs.photos.Photos.getPicture(Photo.java:45)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.exs.photos.Photos.onCreate(Photo.java:34)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.Activity.performCreate(Activity.java:4533)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
    02-19 17:22:30.350: E/AndroidRuntime(20714): ... 11 more

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Voila tu as la réponse...

    NetworkOnMainThreadException

    soit....

    Utilisation du réseau (download) dans le thread UI (ce qui est interdit).


    Le "11 more" veut dire que la stack est identique à l'exception parente, soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.access$600(ActivityThread.java:128)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.os.Handler.dispatchMessage(Handler.java:99)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.os.Looper.loop(Looper.java:137)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at android.app.ActivityThread.main(ActivityThread.java:4517)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.lang.reflect.Method.invokeNative(Native Method)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at java.lang.reflect.Method.invoke(Method.java:511)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
    02-19 17:22:30.350: E/AndroidRuntime(20714): at dalvik.system.NativeStart.main(Native Method)
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci ça fonctionne parfaitement avec une AsynTask.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur pour charger une liste
    Par minie dans le forum Struts 1
    Réponses: 9
    Dernier message: 01/06/2007, 10h16
  2. [VBA-E] Erreur pour copier une feuille
    Par Persons dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/06/2006, 22h38
  3. [SQL] probleme de syntaxe pour afficher une photo en php
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/04/2006, 21h48
  4. Javascript pour charger une page web depuis un menu déroulan
    Par tomguiss dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/10/2005, 08h58
  5. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo