Je suis développeur Java et PHP et je me mets actuellement au C#. J'ai commencé avec l'exemple simple d'un petit navigateur utilisant la librairie Gecko.
La compilation se passe bien, mais à l'exécution j'obtiens cette erreur :
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
J'utilise MonoDevelop 0.5 avec la Mandrake 10.2rc. J'ai bien défini la variable MOZILLA_FIVE_HOME et LD_LIBRARY_PATH contient bien
/usr/lib/mozilla-firefox-1.0.1/:/usr/lib/mozilla-firefox-1.0.1/
( contenant le fichier libgtkembedmoz.so).J'ai utilisé le tutoriel se trouvant à l'adresse
http://primates.ximian.com/~edasque/projects/Tutorial/glade2.html.(...)
Dans celui-ci, il parle de cette erreur :
Mozilla: because of the way Mozilla is installed in some distributions (I haven't been able to trace what it exactly is yet), running the application in MonoDevelop causes the following failure: Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object . Running the application from a terminal (the exe is in the project bin/Debug directory) solves that issue. Also make sure MOZILLA_FIVE_HOME is set.
Mais même lorsque je lance l'applic en ligne de commande, l'erreur se produit.
Y a-t-il autre chose à configurer ?
# manque le principal
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: manque le principal
Posté par Jean-Yves Beaujean (site web personnel) . Évalué à 1.
// project created on 7/04/2005 at 11:49
using System;
using Gtk;
using Glade;
using Gecko;
public class GBrowser
{
[Widget] Frame mainWindow;
[Widget] Entry UrlEntry;
WebControl web;
public static void Main (string[] args)
{
new GBrowser (args);
}
public GBrowser (string[] args)
{
Application.Init();
Glade.XML gxml = new Glade.XML (null, "gui.glade", "window1", null);
gxml.Autoconnect (this);
web = new WebControl();
web.Show();
mainWindow.Add(web);
Application.Run();
}
/* Connect the Signals defined in Glade */
public void OnWindowDeleteEvent (object o, DeleteEventArgs args)
{
Application.Quit ();
args.RetVal = true;
}
void load_url( object source, EventArgs args)
{
web.LoadUrl(UrlEntry.Text);
}
}
[^] # Re: manque le principal
Posté par TImaniac (site web personnel) . Évalué à 2.
Y'a de forte chance que l'initialisation du fichier glade a échoué et que du coup il a pas réussi à initialiser correctement les variables.
je suppose que ton fichier gui.glade est dans les ressources de MonoDevelop, je me trompes ?
vérifies bien dans ton fichier glade le nom de tes widgets et fenêtres, "window1", "UrlEntry", etc. et vérifies aussi qu'ils ont bien le même type.
Si ca marche toujours pas zip moi le projet j'essaierai si tu veux.
[^] # Re: manque le principal
Posté par Jean-Yves Beaujean (site web personnel) . Évalué à 1.
La frame n'est pas déclarée dans le fichier .glade et donc l'objet est null. L'explication est logique.
Je viens de définir une frame et cela semble fonctionner. Je dis semble car je tombe sur d'autre problème. Mais c'est une autre étape de mon apprentissage du C#.
Merci pour ton aide.
[^] # Re: manque le principal
Posté par TImaniac (site web personnel) . Évalué à 2.
Je te rassures, c'est la seule lib pour Mono qui fait ce genre de magouille :)
[^] # Re: manque le principal
Posté par Jean-Yves Beaujean (site web personnel) . Évalué à 1.
Avec Java, je ne me pose pas la question.
[^] # Re: manque le principal
Posté par TImaniac (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.