|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
L'application s'est arrêté. |
Débuté par Joris, 02 juil. 2020 10:58 - 5 réponses |
| |
| | | |
|
| |
Posté le 02 juillet 2020 - 10:58 |
Bonjour à tous,
Je viens ici poster un message car je rencontre un souci depuis plusieurs semaines/mois que je ne comprends pas et donc n'arrive pas à résoudre... Je fais donc appel a vos avis d'expert.
Pour mon entreprise je développe une application mobile (android) de gestion de production et logistique pour les opérateurs de terrain. Cette application est développée sous Windev Mobile 22 et consomme un Webservice lui aussi réalisé en Windev 22. Sur l'une des fenêtres de cette application j'ai une zone répétée remplie par programmation. Dans cette zonne répétée on retrouve une image ainsi que des libellés. Cette ZR est remplie avec ZoneRépétéeAjouteLigne par les attributs de la ZR. Sur cette ZR j'ai activé le balayage par programmation. Cela afin d'ouvrir une autre fenêtre lors du balayage sur une ligne. Jusqu'ici aucun souci, la fenêtre fille s'ouvre bien et tout fonctionne. Mon problème intervient à la fermeture de la fenêtre (enfin je pense). En effet, de manière plus ou moins aléatoire (70-80% des cas quand même) mon application plante après la fermeture avec un "beau" message l'application s'est arrêté. Je n'ai jamais réussi à reproduire le souci avec le simulateur Windev. J'ai même été jusqu’à mettre une trace a chaque ligne pour voir où était le souci directement dans le logcat, sans succès. Les codes fermeture de la fenêtre ainsi que fermeture d'une fenêtre fille se déroulent complètement. Le plantage intervient après.
D'après le message d'erreur généré, mon problème semble se situer au niveau de la zone répétée mais où ?
Si quelqu'un as déjà eu ce souci ou à une idée du problème je suis preneur. N'hésitez pas si vous avez des questions ou si je n'ai pas été claire sur certains points.
Merci a vous de prendre un peu de temps.
message d'erreur :
06-24 12:39:44.169 8528 8528 E AndroidRuntime: FATAL EXCEPTION: main 06-24 12:39:44.169 8528 8528 E AndroidRuntime: Process: com.XXXX.YYYY, PID: 8528 06-24 12:39:44.169 8528 8528 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int fr.pcsoft.wdjava.ui.champs.qb._getEtat()' on a null object reference 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at fr.pcsoft.wdjava.ui.champs.zr.lc.e(Unknown Source:4) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at fr.pcsoft.wdjava.ui.champs.zr.lc.onInterceptTouchEvent(Unknown Source:0) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2511) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2942) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2942) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.cancelAndClearTouchTargets(ViewGroup.java:2792) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3677) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3697) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:3495) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewRootImpl.doDie(ViewRootImpl.java:6367) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.ViewRootImpl.die(ViewRootImpl.java:6344) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:468) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:406) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:126) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4436) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.app.ActivityThread.-wrap5(Unknown Source:0) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1662) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6528) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 06-24 12:39:44.169 8528 8528 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 06-24 12:39:45.358 1679 1689 I ActivityManager: START u0 {act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras)} from uid 10186 06-24 12:39:45.411 1679 2114 I WindowManager: WIN DEATH: Window{43d7496 u0 com.XXXX.YYYY/com.XXXX.YYYY.wdgen.GWDFFEN_COND_LIST$WDActiviteFenetre EXITING} 06-24 12:39:45.412 1679 2625 I ActivityManager: Process com.XXXX.YYYY (pid 8528) has died: fore TOP 06-24 12:39:45.413 1679 2626 I WindowManager: WIN DEATH: Window{fc675f5 u0 com.XXXX.YYYY/com.XXXX.YYYY.wdgen.GWDFFEN_COND_LIST$WDActiviteFenetre} 06-24 12:39:45.413 1679 2625 W ActivityManager: Exception when unbinding service com.XXXX.YYYY/org.chromium.content.app.SandboxedProcessService0 06-24 12:39:45.413 1679 2625 W ActivityManager: android.os.DeadObjectException 06-24 12:39:45.413 1679 2625 W ActivityManager: at android.os.BinderProxy.transactNative(Native Method) 06-24 12:39:45.413 1679 2625 W ActivityManager: at android.os.BinderProxy.transact(Binder.java:764) 06-24 12:39:45.413 1679 2625 W ActivityManager: at android.app.IApplicationThread$Stub$Proxy.scheduleUnbindService(IApplicationThread.java:1508) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActiveServices.removeConnectionLocked(ActiveServices.java:2723) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActiveServices.killServicesLocked(ActiveServices.java:3122) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:18354) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:5492) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:5687) 06-24 12:39:45.413 1679 2625 W ActivityManager: at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1652) 06-24 12:39:45.413 1679 2625 W ActivityManager: at android.os.BinderProxy.sendDeathNotice(Binder.java:844) 06-24 12:39:45.415 1679 2551 I WindowManager: WIN DEATH: Window{bb53455 u0 com.XXXX.YYYY/com.XXXX.YYYY.wdgen.GWDFFEN_COND_DETAIL$WDActiviteFenetre} 06-24 12:39:45.418 1679 2641 I WindowManager: WIN DEATH: Window{60be191 u0 com.XXXX.YYYY/com.XXXX.YYYY.wdgen.GWDFFEN_MENU$WDActiviteFenetre} 06-24 12:39:45.420 1679 2042 I WindowManager: WIN DEATH: Window{4a23fb4 u0 com.XXXX.YYYY/com.XXXX.YYYY.wdgen.GWDFFEN_Login$WDActiviteFenetre} |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 02 juillet 2020 - 17:05 |
Bonjour.
As-tu un reprisesaisie à la fin de ton traitement de retour d'une fenêtre fille ? As-tu des traitements qui se déclenchent à la prise de focus d'un champ ?
Quand tu indique que le phénomène de reproduit souvent, est-ce que c'est systématique si tu balaye la même ligne plusieurs fois ? Ou bien même sur une même ligne cela se produit "plus ou moins aléatoire" ? Y a-t-il une ligne sur laquelle cela ne se produit jamais ? A l'ouverture de la fenêtre fille, mets-tu à jour un champs de la fenêtre ou une variable globale ?
Le problème peut provenir de plusieures causes, ça serait bien d'avoir un peu plus de détails concernant ton traitement. |
| |
| |
| | | |
|
| | |
| |
Posté le 03 juillet 2020 - 09:46 |
Bonjour et merci a toi de prendre un peu de temps pour essayer de résoudre mon souci.
Pour te répondre, je n'ai pas de reprise saisie, tous les traitements sont déclenchés via des clics boutons et des balayages dans des zones répétées. J'ai aussi un traitement sur la modification d'un champ texte pour la lecture de code-barres. A l'ouverture de la fenêtre fille j'ai un traitement de mise jour de l'interface. Et sur le traitement "fermeture d'une fenêtre fille" j'ai un traitement de mise à jour de la fenêtre mère. Le phénomène semble être aléatoire, certains opérateurs vont l'avoir systématiquement, alors que d'autres occasionnellement. J'ai fait différents tests en interchangeant les devices entre les utilisateurs pour voir s'il y avait une évolution, mais non. Ceux pour lesquelles le problème est systématique reste systématique même après changement. Idem pour ceux pour lesquelles c'est occasionnel. Pour ce qui est des lignes, c'est pareil, en général dans ma zone répétée j'ai 1 ou 2 lignes (parfois plus). Et certains ont plus souvent les soucis sur la 2nd alors que d'autres l'ont sur toutes.
Quand tu dis "A l'ouverture de la fenêtre fille, mets-tu à jour un champ de la fenêtre ou une variable globale ?" Oui, je mets à jours l'interface avec mes données. Cela t'évoque quelque chose? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 326 messages Popularité : +5 (5 votes) |
|
Posté le 06 juillet 2020 - 09:57 |
Bonjour.
Cela me parait compliqué comme ça, à distance sans connaître ton code.
Une question : est-ce que tu as un bouton qui ferme la fenêtre ou bien est-ce que l'utilisateur appuie sur la flèche retour standard en haut à gauche ?
Je demande ça car peut-être qu'un utilisateur appuie sur la flèche au lieu d'un bouton spécial que tu aurais ajouté et qui exécuterait des traitements. Or en appuyant sur la flèche, ces traitements (et/ou mises à jour interface, etc...) ne s'exécuteraient pas.
C'est juste une idée en passant hein, j'ai personnellement été tellement de fois confronté à ce genre de pb très embêtants qui font perdre énormément de temps que j'ai envie de t'aider
Et en positionnant des "info()" avec valeurs de variables et/ou champs, tu arrive à mieux localiser le problème ? |
| |
| |
| | | |
|
| | |
| |
Posté le 06 juillet 2020 - 13:46 |
Bonjour,
Je gère le back android avec un bouton de type "abandon" afin d'avoir le même comportement entre ce bouton android et mes boutons retours. Cela dit, dans mon cas, ce traitement n'est pas exécuté car c'est un bouton de type "normal" qui ferme ma fenêtre (validation des informations).
Pour ce qui est de positionner des info() j'ai déjà tester notamment avec des traces, et tous les codes sont bien exécutes (code du bouton, code fermerture de la fenêtre et code fermeture d'une fenêtre fille) |
| |
| |
| | | |
|
| | |
| |
Posté le 09 juillet 2020 - 09:31 |
Bonjour,
Il semblerais que j'ai trouvé la solution a mon problème !!
Comme je le disait, j'ai une fenêtre mère et un fille. Sur la fenêtre mère je mettais à jour l'interface dans la section "Fermeture d'une fenêtre fille". J'ai simplement déplacer la mise a jour de mon interface dans "Prise de focus". Cela semble avoir totalement résolu mon problème.
Merci a toi d'avoir pris un peu de temps pour m'aider |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|