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 :

AsynkTask ne passe pas par onPostExecute()


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut AsynkTask ne passe pas par onPostExecute()
    Hello !

    Mon AsynTask marche correctement jusqu'à la fin de l’exécution de doInBackground(). En effet, onPostExecute() n'est jamais appelé. Ce n'est pas un problème d'argument retourné et déclaré comme j'ai pu lire dans certains post déjà créés.


    Voici mon code :

    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
    71
    72
    73
    74
    75
    76
    77
    78
     
    public class DisplayEvents extends Activity {
     
        public DisplayEvents() {
        }
     
        @Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_lst_events);
            Log.i("monactivity", "test02");
    		// Calling async task to get json
    		new GetEvents().execute();
    	}
     
        class GetEvents extends AsyncTask<Void, Void, Void>
        {
            private ArrayList<Event> listeEvent;
            private ProgressDialog pDialog = new ProgressDialog(DisplayEvents.this);
     
            @Override
            protected void onPreExecute() {
                // TODO i18n
                pDialog.setMessage("Please wait..");
                pDialog.show();
            }
     
            @Override
            protected Void doInBackground(Void... unused) {
                RequestWebService rws = new RequestWebService();
                Log.i("monactivity", "test1");
                try {
                    listeEvent = rws.getAllEvents();
                } catch (JSONException e) {
                    e.printStackTrace();
                } catch (ParseException e) {
                    e.printStackTrace();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                Log.i("monactivity", "test2");
                return null;
            }
     
            @Override
            protected void onPostExecute(Void unused)
            {
     
                if (pDialog.isShowing())
                {
                    pDialog.dismiss();
                }
                Log.i("monactivity", "test2");
                /**
                 * Affiche la liste des events
                 * */
     
                Log.i("monactivity", "test3");
                RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view_event);
     
                // use this setting to improve performance if you know that changes
                // in content do not change the layout size of the RecyclerView
                mRecyclerView.setHasFixedSize(true);
     
                // use a linear layout manager
                RecyclerView.LayoutManager mLayoutManager;
                mLayoutManager = new LinearLayoutManager(DisplayEvents.this);
                mRecyclerView.setLayoutManager(mLayoutManager);
     
                // specify an adapter (see also next example)
                MyAdapterEvent mAdapter = new MyAdapterEvent(listeEvent,this);
                mRecyclerView.setAdapter(mAdapter);
                Log.i("monactivity", "test4");
     
            }
        }
     
    }
    Mon application crashe après le doInBackground()
    En mode débugage pas à pas je m’aperçois que mon code s’arrête dans cette portion de code de la classe AsynkTask.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public synchronized void execute(final Runnable r) {
                mTasks.offer(new Runnable() {
                    public void run() {
                        try {
                            r.run();
                        } finally {
                            scheduleNext();
                        }
                    }//Stop ici
                });
                if (mActive == null) {
                    scheduleNext();
                }
            }
    J'ai tenté de renvoyer mon tableau ou des Integer en modifiant comme il se doit les paramètre dans les différents protos mais mon code s’arrête toujours au même endroit.
    Je suis à court d'idées. Pourquoi mon programme n'exécute t il pas onPostExecute() ?

    Merci pour vos retours !

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Peux tu nous montrer le logcat ?

    Merci.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi à passer dans mon onPostExecute, j'ai maintenant cette erreur ci, avec toujours un crash

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    05-26 21:47:26.023    2681-2681/com.upo10.miage.upopulse I/art﹕ Not late-enabling -Xcheck:jni (already on)
    05-26 21:47:26.068    2681-2681/com.upo10.miage.upopulse W/ActivityThread﹕ Application com.upo10.miage.upopulse is waiting for the debugger on port 8100...
    05-26 21:47:26.078    2681-2681/com.upo10.miage.upopulse I/System.out﹕ Sending WAIT chunk
    05-26 21:47:26.095    2681-2688/com.upo10.miage.upopulse I/art﹕ Debugger is active
    05-26 21:47:26.294    2681-2681/com.upo10.miage.upopulse I/System.out﹕ Debugger has connected
    05-26 21:47:26.294    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:26.510    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:26.721    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:26.941    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:27.151    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:27.360    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:27.570    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:27.781    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:27.990    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:28.201    2681-2681/com.upo10.miage.upopulse I/System.out﹕ waiting for debugger to settle...
    05-26 21:47:28.411    2681-2681/com.upo10.miage.upopulse I/System.out﹕ debugger has settled (1359)
    05-26 21:47:28.477    2681-2681/com.upo10.miage.upopulse I/zzx﹕ Making Creator dynamically
    05-26 21:47:28.479    2681-2681/com.upo10.miage.upopulse W/ResourcesManager﹕ Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
    05-26 21:47:28.479    2681-2681/com.upo10.miage.upopulse W/ResourcesManager﹕ Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
    05-26 21:47:28.514    2681-2681/com.upo10.miage.upopulse I/Google Maps Android API﹕ Google Play services client version: 7095000
    05-26 21:47:28.599    2681-2693/com.upo10.miage.upopulse I/art﹕ Background sticky concurrent mark sweep GC freed 1902(136KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 1640KB/1640KB, paused 2.459ms total 101.891ms
    05-26 21:47:28.720    2681-2693/com.upo10.miage.upopulse I/art﹕ Background partial concurrent mark sweep GC freed 325(43KB) AllocSpace objects, 0(0B) LOS objects, 39% free, 1620KB/2MB, paused 1.524ms total 119.627ms
    05-26 21:47:28.828    2681-2681/com.upo10.miage.upopulse I/Google Maps Android API﹕ Google Play services package version: 7097470
    05-26 21:47:29.580    2681-2693/com.upo10.miage.upopulse I/art﹕ Background sticky concurrent mark sweep GC freed 32020(1827KB) AllocSpace objects, 4(64KB) LOS objects, 10% free, 12MB/14MB, paused 1.692ms total 225.154ms
    05-26 21:47:29.689    2681-2717/com.upo10.miage.upopulse D/OpenGLRenderer﹕ Render dirty regions requested: true
    05-26 21:47:29.692    2681-2681/com.upo10.miage.upopulse D/﹕ HostConnection::get() New Host Connection established 0x9f9f7e30, tid 2681
    05-26 21:47:29.698    2681-2681/com.upo10.miage.upopulse D/Atlas﹕ Validating map...
    05-26 21:47:29.781    2681-2717/com.upo10.miage.upopulse D/﹕ HostConnection::get() New Host Connection established 0x9ee17120, tid 2717
    05-26 21:47:29.792    2681-2717/com.upo10.miage.upopulse I/OpenGLRenderer﹕ Initialized EGL, version 1.4
    05-26 21:47:29.808    2681-2717/com.upo10.miage.upopulse D/OpenGLRenderer﹕ Enabling debug mode 0
    05-26 21:47:29.829    2681-2717/com.upo10.miage.upopulse W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 21:47:29.830    2681-2717/com.upo10.miage.upopulse W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0x9f9f8ae0, error=EGL_SUCCESS
    05-26 21:47:29.986    2681-2714/com.upo10.miage.upopulse D/﹕ HostConnection::get() New Host Connection established 0x9ee3a0b0, tid 2714
    05-26 21:47:30.502    2681-2681/com.upo10.miage.upopulse I/HomePageActivity﹕ Location services connected.
    05-26 21:47:30.502    2681-2681/com.upo10.miage.upopulse I/HomePageActivity﹕ Location null.
    05-26 21:47:31.143    2681-2693/com.upo10.miage.upopulse I/art﹕ Background sticky concurrent mark sweep GC freed 1439(48KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 25MB/25MB, paused 11.255ms total 29.887ms
    05-26 21:47:32.446    2681-2693/com.upo10.miage.upopulse I/art﹕ Background sticky concurrent mark sweep GC freed 1331(65KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 64MB/64MB, paused 1.864ms total 413.325ms
    05-26 21:47:32.647    2681-2693/com.upo10.miage.upopulse I/art﹕ Background partial concurrent mark sweep GC freed 2179(109KB) AllocSpace objects, 0(0B) LOS objects, 5% free, 64MB/68MB, paused 1.661ms total 198.180ms
    05-26 21:47:34.561    2681-2681/com.upo10.miage.upopulse I/Choreographer﹕ Skipped 154 frames!  The application may be doing too much work on its main thread.
    05-26 21:47:34.667    2681-2717/com.upo10.miage.upopulse W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 21:47:34.667    2681-2717/com.upo10.miage.upopulse W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0x9e19f620, error=EGL_SUCCESS
    05-26 21:47:35.498    2681-2681/com.upo10.miage.upopulse I/Choreographer﹕ Skipped 47 frames!  The application may be doing too much work on its main thread.
    05-26 21:47:45.766    2681-2681/com.upo10.miage.upopulse I/monactivity﹕ test02
    05-26 21:47:45.863    2681-2719/com.upo10.miage.upopulse I/monactivity﹕ test1
    05-26 21:47:52.450    2681-2717/com.upo10.miage.upopulse W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 21:47:52.450    2681-2717/com.upo10.miage.upopulse W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d125a80, error=EGL_SUCCESS
    05-26 21:47:54.645    2681-2681/com.upo10.miage.upopulse D/AndroidRuntime﹕ Shutting down VM
    05-26 21:47:54.649    2681-2681/com.upo10.miage.upopulse E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: com.upo10.miage.upopulse, PID: 2681
        java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference
                at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764)
                at android.view.View.measure(View.java:17430)
                at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
                at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
                at android.view.View.measure(View.java:17430)
                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
                at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                at android.view.View.measure(View.java:17430)
                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
                at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
                at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
                at android.view.View.measure(View.java:17430)
                at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
                at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
                at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
                at android.view.View.measure(View.java:17430)
                at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
                at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
                at android.view.Choreographer.doCallbacks(Choreographer.java:580)
                at android.view.Choreographer.doFrame(Choreographer.java:550)
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:754)
                at android.os.Handler.handleCallback(Handler.java:740)
                at android.os.Handler.dispatchMessage(Handler.java:104)
                at android.os.Looper.loop(Looper.java:137)
                at android.app.ActivityThread.main(ActivityThread.java:5223)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    05-26 21:48:26.910    2681-2719/com.upo10.miage.upopulse I/monactivity﹕ test2

    D'après mes recherches cela viendrait du fait que je n'ai pas mis le linearLayoutManager , or celui ci est dans mon code de onPostExecute ce qui est étonnant

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    ton erreur vu le log c'est ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference
    Un pointeur null dans la fonction onMeasure du RecyclerView. Après je ne sais pas si cela à un rapport ou pas mais ton crash vient de là.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Donc il faut voir pourquoi findViewById renvoie null ici :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view_event);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/10/2011, 09h07
  2. [MVC3] Le débogueur ne passe pas par global.asax en mode IIS
    Par CUCARACHA dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 10/07/2011, 19h14
  3. Réponses: 8
    Dernier message: 27/01/2009, 22h46
  4. Réponses: 1
    Dernier message: 15/01/2008, 12h39
  5. Jointure simple qui ne passe pas par les index ?!
    Par souch dans le forum Oracle
    Réponses: 13
    Dernier message: 24/07/2007, 17h03

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