Android : main.out.xml:1: error: Error parsing XML: no element found

Publié dans Java | Laisser un commentaire

Tiens, voilà longtemps que je n’avais pas écris un nouveau billet ! Depuis Noël en fait. Qu’importe, me voilà de retour pour un billet sur Android ! Voilà une erreur avec laquelle j’ai dû découdre l’autre jour :

res\layout\main.xml:0: error: Resource entry main is already defined.
res\layout\main.out.xml:0: Originally defined here. ...\workspace\TP-Android\res\layout\main.out.xml:1:
error: Error parsing XML: no element found Error in an XML file: aborting build.

La solution

  • Supprimer le fichier main.out.xml
  • Cliquer sur le fichier de votre Activity principale (pour moi src/package-tp-android/main.java)
  • Relancer l’exécution

Si cela ne fonctionne toujours pas, essayez plutôt :

  • Supprimer le fichier main.out.xml
  • Cleaner le projet (Projet / Clean…) et rafraichir (F5 sur le projet, ou clic droit / Refresh)
  • Relancer l’exécution !

L’explication

Cette erreur est due à la création du fichier main.out.xml qui fait un doublon de nom avec le main.xml et ce fichier est créé si on lance un run à partir du main.xml. Pour éviter l’erreur, il faut donc lancer le run en sélectionnant un fichier Java (de préférence l’Activity principale) et ensuite utiliser l’historique des run.

Joyeux Noël 2010

Publié dans Informations | Laisser un commentaire

Au moins 30 minutes de Joyeux Noël à chacun !

Et un peu de lecture pour se rappeler l’histoire de Noël : Naissance de Jésus (la Bible, livre de Luc, les chapitres 1 et 2)

Le retour de Buzz ?

Publié dans Geekeries | Un commentaire

Buzz sur Gmail

Ou peut-être pas, qui sait ?!?

Je n’arrête pas de le voir apparaître / disparaître sur mon Gmail en tout cas…

Expression n° 4 : Perte de temps

Publié dans Geekeries | 2 commentaires

Le temps, c’est de l’argent

Et l’argent ne fait pas le bonheur

Donc, perdre son temps

C’est s’éloigner du malheur.

UTF-8 pour le chinois : il parait que ça marche

Publié dans Java | 2 commentaires

UTF-8
Alors alors, peut-on écrire du chinois avec de l’UTF-8 ? La réponse est : OUI !

Par contre, c’est un chinois simplifié qui ne contient donc pas tous les caractères chinois. Si on ne souhaite pas fricoter avec l’unicode, on peut aussi utiliser son homologue chinois (c’est-à-dire l’équivalent de l’UTF-8 (standard international) version chinoise. Bizarre non ?) : GB18030. Mais la encore, c’est du chinois simplifié. Pour avoir du chinois traditionnel, il faut faire face à Big5 (je trouve que le nom en jette !).

Tout ceci explique pourquoi la classe Locale de Java (qui permet de gérer la langue à utiliser) définit le raccourci : Locale.TRADITIONAL_CHINESE et Locale.SIMPLIFIED_CHINESE.

Pour info, Google.ch utilise l’UTF-8 et après quelques minutes de surf sur des sites chinois (avec une collègue chinoise qui m’a montré tout ça), il y a des sites en UTF-8 et des sites en GB18030.

J’aurai peut-être l’occasion de tester ça d’ici 3 semaines, si c’est le cas je confirmerai ou infirmerai ce billet.

Pour aller plus loin

Fichier de configuration SSH

Publié dans Geekeries | Laisser un commentaire

SSH est tout de même un protocole vraiment formidable pour accéder à un serveur distant. Une petite ligne de commande, un mot de passe (et/ou une clef publique) et hop, c’est comme si on était sur la machine qui se situe parfois à je ne sais quelle distance de nous, le tout sécurisé ! Que demander de plus ?
Cela dit, si vous êtes comme moi, vous en avez peut-être légèrement marre de taper la ligne de commande de connexion :
ssh username@monhostquiestparfoisuneadresseIPcompliquee
Ou pire s’il faut préciser une clef DSA ou RSA :
ssh -i cheminversmaclefengeneralpastrescourt/maclef username@monhostquiestparfoisuneadresseIPcompliquee
Continuer la lecture

Bosser chez Google

Publié dans Geekeries | 2 commentaires

Google !
Vu tous les (projets de) rachats d’entreprises effectués par Google ces derniers temps, je me dis qu’il y a deux solutions pour bosser là bas :

  • Réussir tous ses entretiens d’embauche chez Google (vu les questions posées, c’est mal barré !)
  • Faire partie d’une boîte innovante et à la pointe, touchant à la gestion ou l’analyse de données (le multimédia c’est à la mode !), et qui ne serait, si possible, pas mécontente d’être rachetée.

La deuxième méthode est presque plus grisante, non

Edit : Petit résumé des achats estivales de Google sur Zorgloob : Liste de shopping Google

Tester l’égalité de 2 variables sous Maven

Publié dans Java | Laisser un commentaire

Instinctivement pour tester l’égalité de deux variables sous Maven, moi j’écrirai :

<j:if test="${var1 == var2}">
	<echo message="var1 égale var2" />
</j:if>

Mais visiblement sous Maven, ça ne marche pas comme ça ! Le code suivant renverra un résultat pour le moins aléatoire. Du coup, en réfléchissant et en parcourant la Toile (qui est très pingre à ce sujet), je me suis mis à écrire :
Continuer la lecture

Logo OpenSSL

Lister, ajouter, modifier, supprimer des variables d’environnement sous Windows

Publié dans Geekeries | 10 commentaires

Comme tous les OS (à ma connaissance), Windows possède des variables d’environnement qui sont accessibles pour tout le système. Par exemple : USERNAME contient le nom du user connecté, COMPUTERNAME contient le nom de l’ordi, OS le nom de l’OS.

Lister les variables d’environnement

Dans une console Windows (Menu démarrer > Excécuter > cmd), il suffit de taper set pour voir la liste des variables d’environnement actuelle.
Donc, le code ci-dessous :

set

Affiche par exemple :
Continuer la lecture

Documentation et tutoriel Hibernate

Publié dans Java | Un commentaire

Hibernate est un framework utilisé en Java EE permettant de gérer ce que l’on appelle la « persistance des objets » dans une base de données.
En français courant : en Java on travaille sur des objets, on réfléchit avec des objets et en général on souhaite pouvoir stocker quelques uns de ces objets quelque part. Pour se faire, on utilise le plus souvent une base de données et celle-ci est rarement une BDD* objet (car trop compliqué, pas performant et patati et patata) mais plutôt une BDD relationnelle (c’est-à-dire : non objet). Hibernate permet de faire le lien entre Java et la BDD en facilitant les accès via HQL (d’habitude on utilise le SQL pour accéder à une BDD relationnelle, HQL utilise une syntaxe similaire mais manipule des objets), et surtout en faisant en sorte que Java n’ai qu’à traiter des objets. Bref, Hibernate fait gagner un temps fou au développeur, tout en lui permettant de se concentrer d’avantage sur l’essentiel.

J’ai découvert des documentations et des cours Hibernate 2 et Hibernate 3 sur le « site Internet » de M. Masssat, un enseignant-chercheur à Marseille. Je les consulte de temps en temps et c’est du tout bon.

Et M. Massat fournit aussi quelques autres liens vers des infos sur Tomcat, JSP, … : Le coin des docs… Merci à lui et bonne lecture !

Au passage, dans mon bouquin sur Java EE 5, l’auteur parle de JPA. JPA est apparu avec Java EE 5 et a le même rôle qu’Hibernate sauf qu’il est intégré nativement à Java. Les développeurs de Sun se sont inspirés du travail effectué sur Hibernate (ainsi que d’autres frameworks faisant la même chose) et ont standardisé la chose. A ma connaissance, JPA commence à être utilisé de plus en plus massivement, donc à mon avis, ça vaut le coup de s’y intéresser. J’écrirai peut-être un de ces quatre sur Hibernate ou JPA. (ou les deux)

* BDD = Base De Données