|
|||||||||||||||||||||||||||||||||||||||||||||||||||
2012 2010 2009 2008 2007 |
June 21, 2007. MEXAその2 機能に引き続きMEXAをいじっておりましたが、どうも上手くいきません。まずはMEXA Emulatorをインストールしサンプルを実行。なんの面白みも無いサンプルだけど普通に動く。次にeclipseにplugin for mexa sdkを追加。テストプロジェクトを作成し、テンプレートも作成を選択。適当に穴を埋めて実行。FormまたはCanvasが表示されるようにすれば、それぞれがちゃんと動作する。恒例のHello worldも動作した。
さて、ここからが問題。CanvasをACanvasやSpriteCanvasにした途端、コンパイルは通るのに、実行ができない。デバッガで見てみると、NoClassDefFoundExceptionを吐いている。おかしいなと思って、@ITでdownloadしたサンプルjadを取り込んでも同じ例外。Canvas系をあきらめ、FormにLocalizedTextBoxを追加しても同じ例外が発生した。 Javaを長くやっていた人なら分かると思うが、コンパイルが通って、NoClassDefFoundExceptionが出たら99%クラスパスの設定がおかしいか、jarファイルの置き場所がおかしい。しかし、エミュレータ単体でのサンプルの実行では問題が起きないのに何故だ?ただのCanvasしか使ってないのか?(サンプルなのにソースがついてない!)と、いろいろ悩む。jarのおき場所を変えたり、システムのclasspathに追加したりしても改善せず。 webで検索したところ、どうもjadに追加の記述がないと、追加パッケージ系のものが動作しないらしい。で、他の人のブログの記述を参考に、@ITからのサンプルのjadにMIDxlet-API: JSCL-1.4.2と記述してみたら、画面は表示された。スプライトの回転が動かないようだが...。で、自分のサンプルにも追記したところ、今度はIllegalArgumentExceptionが発生している。LocalizedTextBoxのインスタンス作成時の引数の100がダメとか文句を言っている。もはや意味不明。baristaが即値を書いたなら有りうる話だが、ちゃんとLocalizedTextBox.INTERNETと定数を指定している。デバッガも動いたり動かなかったりするし...。
とまぁ、調査は難航中。webを探しても情報が無い。海外サイトを探そうにも日本の会社のものなので、日本のサイトにしか情報は無い。Softbankのサイトの情報が足りない。tipsを乗せる暇があったらwhitepaperを乗せるべきだろうと思う。MUST一覧が明確になっていれば、あとは開発者の手腕次第なのだから。でもまぁ、情報が無いという事は、上手く動くようになった時には他の人の役に立つわけなので良いかな。実際のところ「知ってるけどwebに公開する時間は無い」というスーパープログラマが死ぬほど居るわけで、今更追いかけるってのも情けない話ではあるのですが。素人なので素人の役に立てるよう頑張りましょう。 ※パスにはこの日記のタイトルをコピペして下さい。 Copyright 2007 barista. All rights reserved. |
|