Spanish java.lang.NullPointerException... No lo veo...

Dadaista

Active Member
Licensed User
Longtime User
Hola

Tengo un problema con un sub Que, repentinamente ha dejado de funcionar... Prometo que antes esto funcionaba pero he ido a probar una cosa y ha "petado"
No veo la solucion... evidentemente algo se me está pasando pero lo que he dicho... esto antes funcionaba y creo no haber tocado nada

B4X:
Dim ClvMsgBox As CustomListView
Dim MsgBoxPanel As B4XView

Sub CreateMsgBoxEmailRegistro (mapa As Map, sTextoFinal As String)
    MsgBoxPanel = xui.CreatePanel("")
    MsgBoxPanel.SetLayoutAnimated(0, 0, 0, 400dip, 250dip)
    MsgBoxPanel.LoadLayout("ListTemplate")'ListTemplate is part of XUI Views library.
    
    ClvMsgBox.DefaultTextColor = xui.Color_White
    ClvMsgBox.sv.SetColorAndBorder(xui.Color_Transparent, 0, 0, 0)'ERROR AQUI
            
    ClvMsgBox.AddTextItem("Comercio: " & mapa.Get("NOMBRE"),"")
    ClvMsgBox.AddTextItem("Email: " & mapa.Get("EMAIL"),"")
    ClvMsgBox.AddTextItem("id: #" & sID,"")
    ClvMsgBox.AddTextItem("Chequea tu Email y Pulsa en el Enlace para " & sTextoFinal,"")
End Sub

El log dices esto:
B4X:
Ha ocurrido un error en la línea: 7247
java.lang.NullPointerException
    at java.base/java.lang.reflect.Method.invoke(Method.java:557)
    at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:676)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:240)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
    at jdk.internal.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
    at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
    at anywheresoftware.b4a.debug.Debug.delegate(Debug.java:64)
    at Caja.Venta.main._createmsgboxemailregistro(main.java:7312)
    at Caja.Venta.main$ResumableSub_BtnRegistro1_Click.resume(main.java:13383)
    at anywheresoftware.b4a.shell.DebugResumableSub$DelegatableResumableSub.resumeAsUserSub(DebugResumableSub.java:47)
    at jdk.internal.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:632)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
    at jdk.internal.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
    at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:78)
    at anywheresoftware.b4a.shell.DebugResumableSub$DelegatableResumableSub.resume(DebugResumableSub.java:42)
    at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:136)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:85)
    at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
    at anywheresoftware.b4a.keywords.Common.CallSub4(Common.java:487)
    at anywheresoftware.b4a.keywords.Common.access$0(Common.java:467)
    at anywheresoftware.b4a.keywords.Common$CallSubDelayedHelper.run(Common.java:541)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:832)

Si quito la linea que da error, da error en la siguiente linea

El programita esta "en produccion" e incluso subido a la Microsoft Store... no os quiero ni contar el agobio que me acaba de entrar. No me llega la camisa al cuello ?

Vuelvo a repetir que esto hace un par de meses funcionaba y no me explico que ahora no funcione

A ver si me podeis echar un cable

Gracias
 

Jhonn

Member
No estoy seguro, no te falta añadir el MsgPanel al ClvMsgBox?
B4X:
ClvMsgBox.Add( MsgBoxPanel, "" )
 

josejad

Expert
Licensed User
Longtime User
Hola Dadaista:

Si no me equivoco hablamos de B4J. Apenas lo uso, así que no tengo ni idea de por dónde viene el error, pero algo que me ayuda a veces a encontrar el fallo es crear un pequeño proyecto para subirlo al foro, y a veces así al final aíslas el fallo, y además nos ayudas a entender algo mejor lo que pasa, porque creo que hay pocos datos aquí. (Por ejemplo, qué línea es la 7247? qué datos tiene el mapa que pasas a la función? qué función tiene MsgBoxPanel y cómo lo muestras?)

A ver si puedes crear en una nueva app un mapa como el que le pasas a la función y subirlo. Quizás no sea posible por la complejidad de la app, pero a veces en ese proceso das con la tecla de qué está pasando.

saludos,
 

Dadaista

Active Member
Licensed User
Longtime User
Hola

@Jhonn ... Lo que me indicas no funciona da el mismo error

@José J. Aguilar ... Tienes razón... es poca informacion. Voy a ver si puedo aislarlo y subo un pequeño proyecto

Gracias a los 2
 

Dadaista

Active Member
Licensed User
Longtime User
Hola
Aqui subo el mini proyecto. No entiendo muy bien... ésto antes funcionaba y ahora no ... No he tocado nada... o lo mismo nunca funcionó... porque por ese lado de la aplicacion no he pasado hace mucho tiempo.. no sé... no recuerdo
 

Attachments

  • proyecto.zip
    2.3 KB · Views: 165

josejad

Expert
Licensed User
Longtime User
Y qué es lo que quieres hacer? Mostrar un diálogo para registrarse?
Si es eso, no sé si has probado B4XPreferencesDialog, es muy sencillo y usa un mapa también para guardar el resultado.
 

Dadaista

Active Member
Licensed User
Longtime User
Exactamente solo muestra un dialogo donde pone los datos que acabas de introducir en un panel que se ha mostrado previamente y que se han dado de alta en el servidor. El php del server genera un token que te manda por email. Chequeas el email, pinchas en el link que te llega y ya está.

Creo que voy a quitar la llamada al procedimiento y lo voy a dejar como estaba. Lo cambié todo por dialogs pero éste no parece que funcione. Va a dar el cante porque no se va a ver como los demas pero total, solo se va a mostrar una vez.

Gracias José
 

josejad

Expert
Licensed User
Longtime User
Es que no inicializas el CustomListView... y según Erel, la forma correcta es haciéndolo a través del designer


Te adjunto una prueba un poco cutre...
 

Attachments

  • proyecto.zip
    4.2 KB · Views: 190

Dadaista

Active Member
Licensed User
Longtime User
Es que lo hago en run time... Si, es el customlistview el que da el problema.. pero es que le pongo la inicializacion ".initialized" y le da lo mismo.
Voy a mirar lo que me has mandado.
Gracias José

No me carga... falta un json y los .bjl
Voy a darle una vuelta...
 

josejad

Expert
Licensed User
Longtime User
Qué raro, yo los veo en el zip

 

Dadaista

Active Member
Licensed User
Longtime User
Si si... Ya funciona.. No se por que me daba el error. Ya lo carga

Pues voy a apañar lo que me has mandado y a meterlo en el proyecto José.
Aunque digas que era cutre lo que me has mandado, si soluciona el problema que ha aparecido... a mi me parece acojonante

Muchas gracias!!!!!!!!
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…