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

Composants graphiques Android Discussion :

Force close après l'affichage d'une ListView


Sujet :

Composants graphiques Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Points : 35
    Points
    35
    Par défaut Force close après l'affichage d'une ListView
    Bonjour à tous. J'expose mon problème :
    J'ai une listView customs (image + texte). Je l'affiche, la scroll dans tous les sens, et après quelques temps, F/C.
    le logCat :

    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
    18
    19
    20
    21
    22
    23
    08-25 15:12:34.329: ERROR/AndroidRuntime(352): FATAL EXCEPTION: main
    08-25 15:12:34.329: ERROR/AndroidRuntime(352): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.chlorophyll.passage/com.android.chlorophyll.passage.MenuEcran}: java.lang.NullPointerException
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.os.Handler.dispatchMessage(Handler.java:99)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.os.Looper.loop(Looper.java:123)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at java.lang.reflect.Method.invokeNative(Native Method)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at java.lang.reflect.Method.invoke(Method.java:521)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at dalvik.system.NativeStart.main(Native Method)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352): Caused by: java.lang.NullPointerException
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at com.android.chlorophyll.passage.MenuEcran.remplirTextView(MenuEcran.java:229)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at com.android.chlorophyll.passage.MenuEcran.onCreate(MenuEcran.java:51)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    08-25 15:12:34.329: ERROR/AndroidRuntime(352):     ... 11 more
    avec plusieurs fois
    08-25 15:12:32.959: ERROR/dalvikvm-heap(304): 345600-byte external allocation too large for this process.
    08-25 15:12:32.959: ERROR/GraphicsJNI(304): VM won't let us allocate 345600 bytes
    juste au dessus du premier bout du log.
    Je ne sais pas d'où cela peut venir, je n'ai jamais eu de problème de ce type. Si quelqu'un avait une idée. Merci à vous !
    Un problème dû à la mémoire et des images trop volumineuses ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 20
    Points
    20
    Par défaut
    java.lang.NullPointerException

    Déclare toutes tes variables et si ça crash quand même, regarde où il y en à une qui est définie à null avant que tu ne t'en serves.

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Bonjour,

    Peut tu nous poster un peu de code ?

    L'erreur semble venir d'ici :
    MenuEcran.java
    ligne:229
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    229		if(!Main.el.getAttribute("text").equals("")){
    			TableLayout tab = (TableLayout)findViewById(R.id.tableMenu);
    			TextView textMenuEcran = new TextView(this);
    			textMenuEcran.setText(Main.el.getAttribute("text"));
    			TableRow row = new TableRow(this);
    			row.addView(textMenuEcran);
    			tab.addView(row);
     
    		}
    La première ligne est la ligne 229. Aucune raison de planter donc. Surtout que mon Activity s'affiche bien quelque temps, puis force/close après avoir fait plusieurs aller/retours dans la list.

  5. #5
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Donne toute la procédure... (au moins remplirTextView)

    Est-ce que ça plante uniquement si tu déroules la liste, ou bien tu cliques sur des éléments ?

    Dans ce deuxième cas, est-ce que ça plante toujours sur le même élément ?
    Christian
    Nexus 1 sous Cyanogen - Acer A500

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Ca plante uniquement lorsque je fais plusieurs aller et retours sur la listView. Le click fonctionne sans problème.
    La procédure entière a déjà était envoyée. Il s'agit juste de remplir un TextView si mon Element a un attribut "text".

  7. #7
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Je pense qu'il voulait dire qu'il nous faut le code complet pour pouvoir bien déterminer d'où vient le problème.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Mon AsyncTask :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public class DownloadImageTask extends AsyncTask<String, Drawable, Drawable> {
     
        private static HashMap<String, Drawable> listImages = new HashMap<String, Drawable>();    
        private final WeakReference<ImageView> imageViewReference;
     
        public DownloadImageTask(ImageView imageView){
            super();
            imageViewReference = new WeakReference<ImageView>(imageView);
        }
     
        @Override
        protected Drawable doInBackground(String... url) {
            Drawable d;
     
            d = loadImageFromUrl(url[0]);
     
            publishProgress(d);
     
            return d;
     
        }
     
        @Override
        protected void onPostExecute(Drawable d) {
     
     
            if (imageViewReference != null) {
                ImageView imageView = imageViewReference.get();
                if (imageView != null && d !=null) {    
                    imageView.setImageDrawable(d);
                }else{
                    //imageView.setImageResource(R.drawable.icon);
                }
            }
            this.cancel(true);
     
        }
        public Drawable loadImageFromUrl(String url) {
     
            if (!listImages.containsValue(url)) {
                InputStream inputStream;
                InputStream inputStreams;
                Drawable dr = null;
                try {
                    inputStream = new URL(url).openStream();
                    dr = Drawable.createFromStream(inputStream, "src");
                    listImages.put(url, dr);
                } catch (IOException e) {
     
     
                    try {
                        inputStreams = new URL(Main.urlPrefix+"/"+Main.defaultThumbnail).openStream();
                        dr = Drawable.createFromStream(inputStreams, "src");
                        listImages.put(url, dr);
                    }catch(Exception ee){
     
                    }
     
                }
                return dr;
     
            } else {
     
                return listImages.get(url);
     
            }
     
        }
     
    }

Discussions similaires

  1. Rechargement de la page après l'affichage d'une popup
    Par hokidoki dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/02/2010, 15h12
  2. Affichage d'une listView
    Par sicilianadev dans le forum C#
    Réponses: 0
    Dernier message: 24/05/2009, 14h47
  3. Affichage d'une ListView
    Par astrolus dans le forum Windows Forms
    Réponses: 27
    Dernier message: 01/05/2008, 18h42
  4. Réponses: 8
    Dernier message: 12/05/2006, 14h04
  5. Evénement après l'affichage d'une Form
    Par nikhil dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/06/2005, 13h57

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