none
System.NullReferenceException al presionar un boton en una aplicacion generada RRS feed

  • Pregunta

  • saludos

    estoy trabajando en una aplicacion que genero para ser ejecutada en otro equipo, a la hora de depurarla en el equido donde estoy trabajando no presenta error alguno, pero al instalar y ejecutar esta misma aplicacion en otro equipo aparece el siguiente mensaje de error:

     Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
       en proyectoIItrim.fact.Button3_Click(Object sender, EventArgs e)
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Ensamblados cargados **************
    mscorlib
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.269 (RTMGDR.030319-2600)
        Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    proyectoIItrim
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0
        Código base: file:///C:/Program%20Files%20(x86)/Sistema%20Inventario%20Seproma%20Almacen/proyectoIItrim.exe
    ----------------------------------------
    Microsoft.VisualBasic
        Versión del ensamblado: 10.0.0.0
        Versión Win32: 10.0.30319.1 built by: RTMRel
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.269 built by: RTMGDR
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Core
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.233 built by: RTMGDR
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Windows.Forms
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.278 built by: RTMGDR
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.282 built by: RTMGDR
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Runtime.Remoting
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 (RTMRel.030319-0100)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    System.Data
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.237 (RTMGDR.030319-2300)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    System.Configuration
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 (RTMRel.030319-0100)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.233 built by: RTMGDR
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Transactions
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 (RTMRel.030319-0100)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
    ----------------------------------------
    System.EnterpriseServices
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 (RTMRel.030319-0100)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
    ----------------------------------------
    System.Windows.Forms.resources
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 built by: RTMRel
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    mscorlib.resources
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.1 (RTMRel.030319-0100)
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_es_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    Microsoft.VisualBasic.resources
        Versión del ensamblado: 10.0.0.0
        Versión Win32: 10.0.30319.1 built by: RTMRel
        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic.resources/v4.0_10.0.0.0_es_b03f5f7f11d50a3a/Microsoft.VisualBasic.resources.dll
    ----------------------------------------

    ************** Depuración JIT **************
    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
    aplicación o equipo (machine.config) debe tener el
    valor jitDebugging establecido en la sección system.windows.forms.
    La aplicación también se debe compilar con la depuración
    habilitada

    Por ejemplo:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
    se enviará al depurador JIT registrado en el equipo
    en lugar de controlarlo mediante el cuadro de diálogo.

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
       en proyectoIItrim.fact.Button3_Click(Object sender, EventArgs e)
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Ensamblados cargados **************
    mscorlib
        Versión del ensamblado: 4.0.0.0
        Versión Win32: 4.0.30319.269 (RTMGDR.030319-2600)
        Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    proyectoIItrim
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0
        Código base: file:///C:/Program%20Files%20(x86)/Sistema..

    martes, 4 de septiembre de 2012 22:14

Respuestas

  • Básicamente, el error te dice que en el click del botón se ha intentado acceder a un objeto a través de una referencia nula. Eso ocurre cuando haces cosas como por ejemplo esta:

    MiClase objeto = ObtenerDatos();
    variable = objeto.Propiedad;

    Si "ObtenerDatos" devuelve null, entonces al llamar a objeto.Propiedad se produce el error que estás viendo. Por supuesto, puede ocurrir que nuestra hipotética función "ObtenerDatos" (o las líneas que tengas escritas en el click del botón para asignar el valor de "objeto") devuelvan un valor válido en tu máquina de desarrollo y un valor nulo en la máquina en la que obtienes el error.

    No hay ninguna solución mágica. Tendrás que revisar tu código línea por línea fíjándote en los objetos que manejas y en la forma en que se cargan sus valores, y pensando cuáles son las formas en que podrían recibir un null, y remediarlo manualmente.

     

    • Marcado como respuesta Walter Araya miércoles, 5 de septiembre de 2012 18:21
    miércoles, 5 de septiembre de 2012 14:23

Todas las respuestas

  • Básicamente, el error te dice que en el click del botón se ha intentado acceder a un objeto a través de una referencia nula. Eso ocurre cuando haces cosas como por ejemplo esta:

    MiClase objeto = ObtenerDatos();
    variable = objeto.Propiedad;

    Si "ObtenerDatos" devuelve null, entonces al llamar a objeto.Propiedad se produce el error que estás viendo. Por supuesto, puede ocurrir que nuestra hipotética función "ObtenerDatos" (o las líneas que tengas escritas en el click del botón para asignar el valor de "objeto") devuelvan un valor válido en tu máquina de desarrollo y un valor nulo en la máquina en la que obtienes el error.

    No hay ninguna solución mágica. Tendrás que revisar tu código línea por línea fíjándote en los objetos que manejas y en la forma en que se cargan sus valores, y pensando cuáles son las formas en que podrían recibir un null, y remediarlo manualmente.

     

    • Marcado como respuesta Walter Araya miércoles, 5 de septiembre de 2012 18:21
    miércoles, 5 de septiembre de 2012 14:23
  • gracias al parecer revisé mi codigo y lo que ocurria era que en la base de datos del cliente no enviaba un valor al programa y la variable quedaba en null, esta variable al tratar de manipularla daba error debido a que estaba nula

    gracias por la aclaracion

    saludos


    now i've got that feeling once again,i can't explain, you would not understand.

    miércoles, 5 de septiembre de 2012 18:25