PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Null pointer exception, how to locate error in my WinDev Code
Null pointer exception, how to locate error in my WinDev Code
Iniciado por patrick, jan., 26 2021 2:55 PM - 1 resposta
Publicado em janeiro, 26 2021 - 2:55 PM
My Android application quits with the error:
Attempt to invoke virtual method 'void fr.pcsoft.wdjava.ui.champs.WDGroupe.setProp(fr.pcsoft.wdjava.core.EWDPopriete, boolean)' on a null object reference.
(full error report at the end)

The problem is, I don't have any clue which exact variable this can be. Is there a possibility to access the java code WinDev Mobile generates, so that I can benefit from the lines the error report is showing?

And the error is on a customers device and I wasn't able to reproduce the error on my own device, or with the build in debugger. So I don't have any clue, how to deal with it, using the debug tools WindevMobile provides.

Or if you have any other idea how to work with the java error reports I would also be quite delighted.


Best regards
Patrick

Message=Internal error.
System message=Attempt to invoke virtual method 'void fr.pcsoft.wdjava.ui.champs.WDGroupe.setProp(fr.pcsoft.wdjava.core.EWDPropriete, boolean)' on a null object reference
WLanguage function=ExecuteProcess
Process=Initializing WIN_Buchen
WLanguage stack=Initializing WIN_Buchen
AuslesenDownload global procedure
DatenaustauschDownload global procedure
DatenaustauschAuto global procedure
Initializing Time Touch mobile
Java stack=de.timetouch.tt_mobile.wdgen.GWDFWIN_Buchen.init(GWDFWIN_Buchen.java:3065)
fr.pcsoft.wdjava.ui.bb.executerTraitement(bb.java:71)
fr.pcsoft.wdjava.ui.cb.executerTraitement(cb.java:64)
fr.pcsoft.wdjava.ui.champs.uc.executerTraitement(uc.java:558)
fr.pcsoft.wdjava.ui.champs.fenetre.y.executerTraitement(y.java:323)
fr.pcsoft.wdjava.ui.champs.fenetre.WDFenetre.executerTraitement(WDFenetre.java:842)
fr.pcsoft.wdjava.ui.bb.a(bb.java:32)
fr.pcsoft.wdjava.ui.bb.appelPCode(bb.java:26)
fr.pcsoft.wdjava.ui.cb.appelPCode(cb.java:280)
fr.pcsoft.wdjava.ui.champs.tc.appelPCode(tc.java:973)
fr.pcsoft.wdjava.api.WDAPIVM_Commun.executeTraitement(WDAPIVM_Commun.java:174)
de.timetouch.tt_mobile.wdgen.GWDCPCOL_GlobalProcedures.fWD_auslesenDownload(GWDCPCOL_GlobalProcedures.java:1870)
de.timetouch.tt_mobile.wdgen.GWDCPCOL_GlobalProcedures.fWD_datenaustauschDownload(GWDCPCOL_GlobalProcedures.java:2055)
de.timetouch.tt_mobile.wdgen.GWDCPCOL_GlobalProcedures.fWD_datenaustauschAuto(GWDCPCOL_GlobalProcedures.java:201)
de.timetouch.tt_mobile.wdgen.GWDPTime_Touch_mobile.trtInitProjet(GWDPTime_Touch_mobile.java:427)
fr.pcsoft.wdjava.core.application.f.appelPCode(f.java:32)
fr.pcsoft.wdjava.core.application.f.initialize(f.java:230)
fr.pcsoft.wdjava.core.application.a.A(a.java:255)
fr.pcsoft.wdjava.core.application.b.A(b.java:71)
fr.pcsoft.wdjava.core.application.l.a(l.java:23)
fr.pcsoft.wdjava.core.application.l.doInBackground(l.java:16)
android.os.AsyncTask$3.call(AsyncTask.java:378)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:919)
Thread=id=30
name=wm_task_init_projet
priority=5
groupName=main
Publicado em janeiro, 26 2021 - 3:23 PM
the interesting part is the wlanguage stack:
WLanguage function=ExecuteProcess
Process=Initializing WIN_Buchen
WLanguage stack=Initializing WIN_Buchen
AuslesenDownload global procedure
DatenaustauschDownload global procedure
DatenaustauschAuto global procedure
Initializing Time Touch mobile

So your error occurs when calling executeprocess in the initializing of the win_bunchen windows... And that seems to be called from a global procedure, which is kind of strange for a window opening...

That should narrow it down...

This kind of problem can occur when the app has gone in the background, and therefore the window begin used does not exist anymore,