PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 25 → Mon application s'arrête toute seul
Mon application s'arrête toute seul
Débuté par SamD, 18 jan. 2019 20:56 - 11 réponses
Posté le 18 janvier 2019 - 20:56
Bonsoir,
Mon application fonctionne très bien mais de temps en temps j'ai ce message d'erreur:
===== Erreur =====
Date et heure=18/01/2019 04:06:52
Message=Erreur interne.
Message système=Attempt to invoke virtual method 'int net.wimpi.modbus.msg.ReadInputRegistersResponse.getWordCount()' on a null object reference
Traitement=Initialisation de Gestion_Maison
Pile WLangage=Initialisation de Gestion_Maison
Pile Java=com.masociete.gestionsms.wdgen.GWDCPCOL_ProceduresGlobales.Lecture_auto(GWDCPCOL_ProceduresGlobales.java:398)
com.masociete.gestionsms.wdgen.GWDCPCOL_ProceduresGlobales.fWD_recoitSMS_autoWX(GWDCPCOL_ProceduresGlobales.java:130)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
fr.pcsoft.wdjava.core.WDCallback.a(Unknown Source)
fr.pcsoft.wdjava.core.WDCallback.execute(Unknown Source)
fr.pcsoft.wdjava.core.WDCallback.execute(Unknown Source)
fr.pcsoft.wdjava.d.g.g(Unknown Source)
fr.pcsoft.wdjava.d.f.run(Unknown Source)
Thread=id=8698
name=Automatique - 1
priority=5
groupName=main

===== Copie d'écran =====
Chemin=file:///storage/emulated/0/Android/data/com.masociete.gestionsms/cache/err1547780812878.png

===== Application =====
Nom de l'application=Gestion_Maison_Auto
Version de l'application=0.0.121.0
Nom du package=com.masociete.gestionsms
Date et heure de lancement=17/01/2019 21:42:56
Version du framework Android=22.0.279.0 (fr)

===== Appareil =====
Modèle=LG-D722
Constructeur=LGE
Marque=lge

===== Système =====
Numéro de version d'Android=5.0.2 (Lollipop)
Api Level Android=21
Mémoire de stockage interne totale=4,06 Go
Mémoire de stockage interne disponible=2,06 Go
Densité de l'écran=320
Résolution de l'écran=720x1280

-------------------------------------------------------------------------------------------------
Je n'arrive pas à identifier le problème. Si quelqu'un peut m'aider....
Merci et bon wwekend
Sam
Membre enregistré
16 messages
Posté le 20 janvier 2019 - 20:31
Bonsoir SamD,
je suis quasi dans le même cas que toi, message d'erreur presque identique et pas trouvé de solution
la principale différence c'est que de mon coté la procédure fonctionne à la 1er exécution sans erreur, par contre à la 2e exécution => Crash garantie avec message erreur suivant :

===== Erreur =====
Date et heure=20/01/2019 18:09:52
Message=Attempt to invoke virtual method 'void fr.pcsoft.wdjava.ui.champs.zr.WDAbstractZRRenderer.c()' on a null object reference
Pile Java=fr.pcsoft.wdjava.ui.champs.zr.gc.draw(Unknown Source:62)
android.view.View.updateDisplayListIfDirty(View.java:18168)
android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4222)
android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4202)
android.view.View.updateDisplayListIfDirty(View.java:18127)
android.view.View.draw(View.java:18946)
android.view.ViewGroup.drawChild(ViewGroup.java:4238)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
android.view.View.draw(View.java:19221)
android.view.View.updateDisplayListIfDirty(View.java:18168)
android.view.View.draw(View.java:18946)
android.view.ViewGroup.drawChild(ViewGroup.java:4238)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
fr.pcsoft.wdjava.ui.e.f.dispatchDraw(Unknown Source:10)
android.view.View.draw(View.java:19221)
android.widget.ScrollView.draw(ScrollView.java:1739)
android.view.View.updateDisplayListIfDirty(View.java:18168)
android.view.View.draw(View.java:18946)
android.view.ViewGroup.drawChild(ViewGroup.java:4238)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
android.view.View.updateDisplayListIfDirty(View.java:18159)
android.view.View.draw(View.java:18946)
android.view.ViewGroup.drawChild(ViewGroup.java:4238)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
android.view.View.updateDisplayListIfDirty(View.java:18159)
android.view.View.draw(View.java:18946)
android.view.ViewGroup.drawChild(ViewGroup.java:4238)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:4024)
android.view.View.draw(View.java:19221)
com.android.internal.policy.DecorView.draw(DecorView.java:791)
android.view.View.updateDisplayListIfDirty(View.java:18168)
android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:685)
android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:691)
android.view.ThreadedRenderer.draw(ThreadedRenderer.java:799)
android.view.ViewRootImpl.draw(ViewRootImpl.java:3064)
android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2859)
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2412)
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1439)
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6899)
android.view.Choreographer$CallbackRecord.run(Choreographer.java:1029)
android.view.Choreographer.doCallbacks(Choreographer.java:841)
android.view.Choreographer.doFrame(Choreographer.java:772)
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1015)
android.os.Handler.handleCallback(Handler.java:794)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:176)
android.app.ActivityThread.main(ActivityThread.java:6635)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Thread=id=2
name=main
priority=5
groupName=main

===== Copie d'écran =====
Chemin=file:///storage/emulated/0/Android/data/com.evotech_odis.evotech_Pro_V3/cache/err1548004192912.png

===== Application =====
Nom de l'application=EvoTech Pro V3
Version de l'application=3.207
Nom du package=com.evotech_odis.evotech_Pro_V3
Date et heure de lancement=20/01/2019 18:09:50
Version du framework Android=24.0.143.10 (fr)

===== Appareil =====
Modèle=Redmi Note 5
Constructeur=Xiaomi
Marque=xiaomi

===== Système =====
Numéro de version d'Android=8.1.0 (O)
Api Level Android=27
Mémoire de stockage interne totale=50,44 Go
Mémoire de stockage interne disponible=36,26 Go
Densité de l'écran=440
Résolution de l'écran=1080x2160
Posté le 20 janvier 2019 - 22:09
Bonsoir,
Je viens de trouver le problème mais pas encore de solution trouvée.
L'erreur se produit lors d'un "catch", cela me fait planter l'application.
Je n'arrive pas à trouver comment arrêter mon thread java sans tuer mon application…….
Si quelqu'un à une idée
Merci,
Bonne soirée
Sam
Membre enregistré
105 messages
Posté le 22 novembre 2019 - 10:52
Bonjour,
je relance le sujet. depuis le passe en 24 j'ai fréquemment des utilisateurs qui ont un plantage de mon application.

Ci qq un à une info, qu'il n'hésite pas à m'ne faire part :)

Bonne journée

===== Erreur =====
Date et heure=22/11/2019 10:47:55
Message=Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.widget.Button.getBackground()' on a null object reference
Pile Java=fr.pcsoft.wdjava.ui.champs.bouton.d.drawableStateChanged(Unknown Source:15)
android.view.View.refreshDrawableState(View.java:22933)
android.view.View.onWindowFocusChanged(View.java:13792)
android.widget.TextView.onWindowFocusChanged(TextView.java:11260)
android.view.View.dispatchWindowFocusChanged(View.java:13746)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1467)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1467)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1467)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1467)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1467)
android.view.ViewRootImpl.handleWindowFocusChanged(ViewRootImpl.java:3136)
android.view.ViewRootImpl.access$1900(ViewRootImpl.java:198)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4954)
android.os.Handler.dispatchMessage(Handler.java:106)
android.os.Looper.loop(Looper.java:214)
android.app.ActivityThread.main(ActivityThread.java:7037)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Thread=id=2
name=main
priority=5
groupName=main

--
- ian -
Posté le 16 décembre 2019 - 16:32
Bonjour

Je rencontre le même problème mais pas sur tous les types de matériel.

Erreur : Attempt to invoke virtual method 'android.graphics.drawable.Drawable

Quelle est la correction à apporter ?

Merci d'avance de votre aide
Membre enregistré
2 messages
Posté le 28 mars 2020 - 15:45
Bonjour,

Je reçois également régulièrement ce message d'erreur de la part de mes clients sur 2 applications différentes chacune déployée avec la dernière version de Windev Mobile 24 (77f)

Je n'arrive pas à comprendre d'où cela vient et j'arrive encore moins à reproduire sur 2 smartphones différents.

Quelqu'un a-t-il une piste à proposer? Lan et Birkle, vous avez mis la main sur le problème?

Merci d'avance
Membre enregistré
2 messages
Posté le 28 mars 2020 - 21:02
Cédric a écrit :
Bonjour,

Je reçois également régulièrement ce message d'erreur de la part de mes clients sur 2 applications différentes chacune déployée avec la dernière version de Windev Mobile 24 (77f)

Je n'arrive pas à comprendre d'où cela vient et j'arrive encore moins à reproduire sur 2 smartphones différents.

Quelqu'un a-t-il une piste à proposer? Lan et Birkle, vous avez mis la main sur le problème?

Merci d'avance



Afin d'être le plus clair possible, voici l'erreur dont je parle :

===== Error =====
Date and time=28/03/2020 03:46:35
Message=Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.widget.Button.getBackground()' on a null object reference
Java stack=fr.pcsoft.wdjava.ui.champs.bouton.f.drawableStateChanged(Unknown Source)
android.view.View.refreshDrawableState(View.java:18049)
android.view.View.onWindowFocusChanged(View.java:10286)
android.widget.TextView.onWindowFocusChanged(TextView.java:8406)
android.view.View.dispatchWindowFocusChanged(View.java:10258)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1197)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1197)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1197)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1197)
android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1197)
android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3613)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:6121)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Thread=id=1
name=main
priority=5
groupName=main
Posté le 12 mai 2020 - 14:36
Bonjour,

Je permets de relancer ce sujet, car moi aussi, j'ai ce type de message.
Je suis en version 25 et je viens de tester avec l'update3, mais cela ne change rien.
Mon application peut fonctionner 7-8 heures sans aucun problème ou alors avoir des plantages toutes les 2 minutes.
Des fois elle se lance sans soucis, des fois, impossible d'avoir l'application qui fonctionne correctement.
J'ai essayé un peu tout, modifier les procédures, les découper pour trouver d'ou pouvait venir l'erreur.
Mais, rien n'y fait, j'ai à un moment donné ou un autre cette erreur.
Si quelqu'un avait une piste, cela me sortirait l'épine du pied.

D'avance un grand merci.

Date et heure=11/05/2020 18:20:44
Message=Erreur interne.
Message système=Attempt to invoke virtual method 'java.lang.String fr.pcsoft.wdjava.database.hf.e.a.b.a(fr.pcsoft.wdjava.ws.WDWSEntiteXSD, java.lang.String)' on a null object reference
Pile WLangage=Initialisation de TestMobile
Pile Java=fr.pcsoft.wdjava.database.hf.e.a.c.a(c.java:135)
fr.pcsoft.wdjava.database.hf.e.a.b.a(b.java:193)
fr.pcsoft.wdjava.database.hf.e.d.a(d.java:85)
fr.pcsoft.wdjava.api.WDAPISQL.sqlExec(WDAPISQL.java:31)
com.masociete.saf_mobile.wdgen.GWDCPCOL_sql.fWD_getAgendaHeuresMobiles(GWDCPCOL_sql.java:1876)
com.masociete.saf_mobile.wdgen.GWDFFEN_Calendrier.fWD_afficheAgenda(GWDFFEN_Calendrier.java:2092)
com.masociete.saf_mobile.wdgen.GWDFFEN_Calendrier.fWD_bouclemajagenda_autoWX(GWDFFEN_Calendrier.java:2404)
java.lang.reflect.Method.invoke(Native Method)
fr.pcsoft.wdjava.core.WDCallback.a(WDCallback.java:160)
fr.pcsoft.wdjava.core.WDCallback.execute(WDCallback.java:141)
fr.pcsoft.wdjava.c.c.a(c.java:46)
fr.pcsoft.wdjava.c.d.run(d.java:28)
android.os.Handler.handleCallback(Handler.java:888)
android.os.Handler.dispatchMessage(Handler.java:100)
android.os.Looper.loop(Looper.java:213)
android.app.ActivityThread.main(ActivityThread.java:8147)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Thread=id=1
name=main
priority=5
groupName=main
Membre enregistré
143 messages
Posté le 12 mai 2020 - 16:58
Je confirme de notre côté depuis la 25 Update 2, des plantages sans raisons apparentes, constaté sur des parcs de plusieurs centaines de tablettes, on relance et cela fonctionne. C'est franchement perturbant pour les utilisateurs !
Posté le 19 mai 2020 - 08:47
Bonjour,

Avez-vous-vous trouvé une solution ?
De mon côté, avec des sémaphores, cela semble un peu plus stable, mais cela reste quand même aléatoire.

Bien à vous
Posté le 20 juillet 2020 - 17:55
Bonjour,

Je me permets d'apporter une "solution" (avec de gros guillemets) à ce problème dont une de mes applications a aussi été victime.

Pour contourner, j'ai changé tous les BTN (qui généré l'erreur) par des IMG cliquables.
Pas génial comme "solution", surtout que j'ai du le faire sur une grande partie de l'application. Mais ça à le mérite de ne plus faire crash l'appli.

Bon dev à vous.
Posté le 20 juillet 2020 - 20:21
Hi,

Not having this specific error or crashes, but I did have my list of crashes in other situations. and sometimes my app could run for hours, sometimes only minutes.

Three attention points that I have changed in my application that made it a lot more stable.
1. See the you never ever touch anything from the user interface (Button, edit field, table,....) from a thead. And this may also me a callback function or something that is call via any other trigger that may have started (without your knowledge) in a thread.
2. When you have long running applications/services make sure the Andriod system is not killing them. Depends on the make and model of your phone/tablet if there are some killing routines active te make a better battery life, and at randomly or when the phone went into sleep, just kills the app. And strange things can happen when part of your app is killed and then a notification/event/trigger om some kind is still executed. You get a very strange crash. On some systems you can put you application on a white list.
3. Don't block the main (gui) thread for to long. Long running processes belong in a seprate thread (but be aware of #1)

Hope this helps you in making your application more stable.