Bonjour Depuis longtemps, quand je (on?) lance mon application sur le téléphone (installé via playstore), il arrive, peu souvent, qu'elle plante et qu'un rapport d'erreur soit envoyé sur l'erreur "checkForComodification" (voir plus bas MSG1).
Ce message est ténébreux pour moi.
Je viens de lancer une campagne de fiabilisation de mon application et en mode Go sur l'appareil, j'ai là aussi un comportement bizarre.
1 - à la fin de l'init du projet, dans le logcat, je trouve une première erreur du style "Error receiving broadcast intent" (voir plus bas MSG2). 2 - dans le dixième de second qui suit, je trouve aussi dans le logcat quasiment le même message que l'on reçoit lors du démarrage de l'application installée sur le téléphone. (voir plus bas MSG3).
En parallèle du LOGCAT, dans WM, je constate les choses suivantes avec : 1 - point d'arrêt sur la dernière instruction de l'init du projet 2 - point d'arrêt sur la première ligne de code de init de la fenêtre par défaut. Au lancement du GO sur le téléphone, l'application s'arrête bien sur le point d'arrêt à la fin d'init du projet, si je continue en pas à pas détaillé, message d'erreur "Voulez-vous envoyer un rapport d'erreur" s'affiche. Sur le OK autorisant l'envoi, le code se positionne sur le point d'arrêt de la première fenêtre !
Notez que si je lance le mode GO sur le téléphone, sans points d'arrêts, la fenêtre proposant l'envoi du rapport d'erruer est visible une fraction de seconde avant que la première fenêtre ne soit affichée et "recouvre" cette proposition d'envoi de rapport.
Notez aussi que bien que j'ai demandé le mode strict avec arrêt sur toutes les erreurs, ces arrêts, s'il y en a, ne sont pas visible dans le corps du code.
Notez aussi, qu'à la différence du mode GO sur le téléphone, qui arrive, tant bien que mal à démarrer l'application, en mode exécution de l'application, si l'erreur de "checkForComodification" est interceptée, l'application s'arrête.
Créer un mini-projet pour reproduire ce bug est utopique mais, peut-être que vous pourriez me mettre sur des pistes pour comprendre et corriger ce comportement
J'espère que ces explications complexes auront aiguisé votre curiosité.
MSG1 :
===== Erreur ===== Date et heure=06/02/2024 12:43:19 Pile Java=java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) java.util.LinkedList$ListItr.next(LinkedList.java:888) fr.pcsoft.wdjava.core.context.WDContexte.a(SourceFile:0) fr.pcsoft.wdjava.core.context.c.a(SourceFile:0) fr.pcsoft.wdjava.core.context.c.c(SourceFile:0) fr.pcsoft.wdjava.core.context.WDAppelContexte.a(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Contexte.c(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Contexte.B(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Manager.a(SourceFile:0) fr.pcsoft.wdjava.api.WDAPIHF.hAjoute(SourceFile:0) fr.pcsoft.wdjava.api.WDAPIHF.hAjoute(SourceFile:0) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2318) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2392) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_INTERNET_TEST_CONNECTION(GWDCPCOL_PROCEDURES_GLOBALES.java:10572) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_INIT_PROJET(GWDCPCOL_PROCEDURES_GLOBALES.java:14699) fr.saxrub.wnat.wdgen.GWDPWNAT_Mobile.trtInitProjet(GWDPWNAT_Mobile.java:2627) fr.pcsoft.wdjava.core.application.e.appelPCode(SourceFile:0) fr.pcsoft.wdjava.core.application.e.initialize(SourceFile:0) fr.pcsoft.wdjava.core.application.d.S(SourceFile:0) fr.pcsoft.wdjava.core.application.f.S(SourceFile:0) fr.pcsoft.wdjava.core.application.WDAbstractLanceur$b.a(SourceFile:0) fr.pcsoft.wdjava.core.application.WDAbstractLanceur$b.doInBackground(SourceFile:0) android.os.AsyncTask$3.call(AsyncTask.java:394) java.util.concurrent.FutureTask.run(FutureTask.java:266) android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) java.lang.Thread.run(Thread.java:920) Thread=id=264 name=wm_task_init_projet priority=5 groupName=main
===== Application ===== Nom de l'application=GO WNat Version de l'application=28.4.19.0 Nom du package=fr.saxrub.wnat Date et heure de lancement=06/02/2024 12:43:08 Version du framework Android=28.0.221.0
===== Appareil ===== Modèle=SM-G975F Constructeur=samsung Marque=samsung
===== Système ===== Numéro de version d'Android=12 (Android12) Api Level Android=31 Mémoire de stockage interne totale=109,95 Go Mémoire de stockage interne disponible=39,25 Go Densité de l'écran=560 Résolution de l'écran=1440x3040
MSG2 ;
FATAL EXCEPTION: main Process: fr.saxrub.wnat.go, PID: 18320 java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4200010 (has extras) } in fr.pcsoft.wdjava.net.a$a@3f13092 at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1816) at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) Caused by: fr.pcsoft.wdjava.core.erreur.WDException: Erreur interne. at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) at java.util.LinkedList$ListItr.next(LinkedList.java:888) at fr.pcsoft.wdjava.core.context.WDContexte.a(SourceFile:0) at fr.pcsoft.wdjava.core.context.c.a(SourceFile:0) at fr.pcsoft.wdjava.core.context.c.c(SourceFile:0) at fr.pcsoft.wdjava.core.context.WDAppelContexte.a(SourceFile:0) at fr.pcsoft.wdjava.database.hf.WDHF_Contexte.c(SourceFile:0) at fr.pcsoft.wdjava.database.hf.WDHF_Contexte.B(SourceFile:0) at fr.pcsoft.wdjava.database.hf.WDHF_Manager.e(SourceFile:0) at fr.pcsoft.wdjava.api.WDAPIHF.getFichierSansCasseNiAccent(SourceFile:0) at fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2310) at fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2392) at fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_INTERNET_REFRESH(GWDCPCOL_PROCEDURES_GLOBALES.java:1087) at java.lang.reflect.Method.invoke(Native Method) at fr.pcsoft.wdjava.core.WDCallback.a(SourceFile:0) at fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) at fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) at fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) at fr.pcsoft.wdjava.net.a$a.onReceive(SourceFile:0) at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1806) ... 9 more
MSG 3
===== Erreur ===== Date et heure=06/02/2024 14:01:55 Message=Erreur interne. Message système=java.util.ConcurrentModificationException Traitement=Procédure globale gPROC_INIT_PROJET Pile WLangage=Procédure globale gPROC_INIT_PROJET Initialisation de WNAT_Mobile Pile Java=java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) java.util.LinkedList$ListItr.next(LinkedList.java:888) fr.pcsoft.wdjava.core.context.WDContexte.a(SourceFile:0) fr.pcsoft.wdjava.core.context.c.a(SourceFile:0) fr.pcsoft.wdjava.core.context.c.c(SourceFile:0) fr.pcsoft.wdjava.core.context.WDAppelContexte.a(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Contexte.c(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Contexte.B(SourceFile:0) fr.pcsoft.wdjava.database.hf.WDHF_Manager.e(SourceFile:0) fr.pcsoft.wdjava.api.WDAPIHF.getFichierSansCasseNiAccent(SourceFile:0) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2310) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_WRITE_LOG(GWDCPCOL_PROCEDURES_GLOBALES.java:2392) fr.saxrub.wnat.wdgen.GWDCPCOL_PROCEDURES_GLOBALES.fWD_gPROC_INTERNET_REFRESH(GWDCPCOL_PROCEDURES_GLOBALES.java:1087) java.lang.reflect.Method.invoke(Native Method) fr.pcsoft.wdjava.core.WDCallback.a(SourceFile:0) fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) fr.pcsoft.wdjava.core.WDCallback.execute(SourceFile:0) fr.pcsoft.wdjava.net.a$a.onReceive(SourceFile:0) android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1806) android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2) android.os.Handler.handleCallback(Handler.java:938) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8751) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) Thread=id=2 name=main priority=5 groupName=main
-- Pascal Boulesteix Applications Visiolittoral et WNat |