Blog

bruno @ 07/12/2007 16:15 - 8 comments

Chi ha intenzione di sviluppare MIDlet per cellulari utilizzando il WTK 2.5.2 della Sun su una macchina a 64 bit, si troverà nella situazione di non poter avviare l’emulatore, poichè esso si rifiuterà di partire sostenendo che:

java.lang.UnsatisfiedLinkError:
    /home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so:
    /home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so:
    wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)

Insomma… problemi di compatibilità tra binari a 32 e a 64 bit!

Per risolvere il problema, cominciamo con lo scaricare una JDK a 32 bit;
poi andiamo nella directory dove abbiamo installato WTK (nel mio caso è quello compreso nell’installazione di NetBeans 6) e decomprimiamo il pacchetto:

$ cd ~/netbeans-6.0/mobility8/WTK2.5.2
$ sh /path/to/jdk-6u3-linux-i586.bin
$ ln -s jdk1.6.0_03 jdk32

In seguito, dovremo editare lo script di avvio dell’emulatore WTK:

$ cd ~/netbeans-6.0/mobility8/WTK2.5.2
$ vim bin/emulator

(ovviamente potete utilizzare il vostro editor preferito al posto di vim)

e modificare la prima riga del codice in questo modo:

javapathtowtk=/home/user/netbeans-6.0/mobility8/WTK2.5.2/jdk32/bin/

Adesso potrete finalmente testare le vostre applicazioni J2ME sull’emulatore! :)


5.0/5 Stars
  • Currently 5.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
DMolt @ 13/03/2008 20:06

Ciao, innanzitutto complimenti per la soluzione.
Però non mi funziona, per caso mi sai aiutare perché non funziona?

Bruno @ 13/03/2008 22:15

Se mi dici almeno qual’è il problema, posso cercare di aiutarti. Fammi sapere il messaggio di errore, oppure il comportamento anomalo che hai riscontrato.


E grazie per la visita! :)

DMolt @ 14/03/2008 00:04

l’errore è sempre lo stesso, come se non usasse la jdk a 32 bit ma sempre quella a 64 bit, pensavo di rimuovere quella a 64 bit ma comunque non posso farne a meno…
la distribuzione è la ubuntu 7.10, con il jdk 1.6 della sun (installato dai reèpository) e il jwt 2.5.1 installato con l’auto estraente, la prova l’ho fatta con un esempio e “compilato” e lanciato dalla ktoolbar del jwt.


Grazie per l’aiuto e dimmi se vuoi che ti contatti in un altro modo.


Davide

Bruno @ 14/03/2008 17:34

Ho ripetuto l’installazione di Netbeans + WTK in diverse macchine e con diverse distribuzioni (Ubuntu, Kubuntu, Fedora) ed i passi che ho descritto nel post sono sempre stati sufficienti per far funzionare tutto… l’unica cosa che posso pensare è una diversa modalità di esecuzione.
Potresti provare a lanciare l’emulazione con il pulsante “Run” di NetBeans… mi pare di aver capito che invece esegui l’applicazione in un altro modo.

DMolt @ 14/03/2008 21:29

Ciao,
io provavo a compilare e lanciare gli esempi direttamente dal programma che c’è con il JWT, cmq adesso ho installato Netbeans 6.1 col mobility pack e il jwt e con la tua soluzione funziona, userò quello per le midlet.
Grazie ancora per l’aiuto


Davide

DMolt @ 14/03/2008 23:32

un aggiornamento ho risolto il problema reinstallando il jwt da solo e specificando il path per l’interprete.
Quindi consiglio:
1)installare il jdk a 32 bit
2) installare il jwt e specificare il path manualmente
funziona senza editare lo script dell’emulatore


Un saluto

Bruno @ 15/03/2008 02:59

Grazie mille per l’aggiornamento :) Sarà utile a molti visitatori!

Vito @ 30/06/2008 19:53

si conviene seguire le istruzioni di DMolt
ma se avete installato prima la jwt e poi le jdk32 (come me!!) dovete modificare sia il file emulator che il file ktoolbar nella cartella bin delle jwt se volete fare build e run!!!!
ciao

Name


Email


Website


Add comment