2010/12/25

約4年ぶりにS!アプリ開発

 
vodafone 時代の技術のまま softbank に変わり、初の S!アプリ開発に
取り掛かろうと思ったら、今は Eclipse 環境がほぼ大前提なんですね。
 
Eclipse はバージョン関連で色々違いが有り、あまり好きじゃないんだけど、
時代はそうも言ってられない。
 
ある程度把握したらバッチファイル形式に戻ろう。
 
 
さて公式サイトのサンプルを動かしたところ、下記エラーが発生してしまった。
 
java.lang.IllegalArgumentException: check failed. - check at com.jblend.media.core.MediaBuffer.check(+148) at com.jblend.media.core.MediaStorage.(+40) at com.jblend.jscl.media.phrase.Phrase.(+61) at com.jblend.media.smaf.phrase.PhraseBase.(+11) at com.jblend.media.smaf.phrase.Phrase.(+12) at MyGameCanvas.run(+33)
 
mexa_vista00
 
サンプルソースが起動しないのはどうなの?と思いますが、落ちてる箇所は
 
phrases[0] = new Phrase("bgm.spf");
 
上記 Pharese インスタンスを生成しているところで落ちていた。どうも OS 環境
くさいなぁと思い、色々試行錯誤した所… vista が原因だった。
 
 
PCゲームや一部のソフトウェアでも、XP互換モードで実行する事で直ることは
よくあるのだが、このエミュレーターも同じだった。
 
2010/12/25 現在、最新のエミュレーターの方は以下の exe を XPSP2 互換に変換しましょう。
 
 
C:\Program Files\SOFTBANK_MEXA_EMULATOR23
 
上記、デフォルトインストール場所にある
 
mexa_emulator.exe
 
を右クリックした後、プロパティを選択。
mexa_vista01
 
下記場所を XP SP2 にして「適用」を行う。
mexa_vista02
 
その後エミュレーターを Eclipse から起動すればOK!
mexa_vista04   
 
ちなみに互換モードって WinAPI  GetVersionEx() で取得できるOS 名称を
誤魔化すだけ、と聞いたことがあったのだが、ソフトウェアによっては以下の
ように
 
  if( osversion == "WindowsXP" )  → 実際は文字列判定ではなく数字
 
と XP を前提にしているコードがあるのかもしれない。作り手としては XP が
最新の Windows API を所持しているものとしてみていて、else のときは
Windows 2000 や 9x 系の処理が行われてるのかも。
 
IE7 が Windows2000 にインストール出来ないように XP からセキュリティ関連
のAPI が充実してきているので、その因果関係?の影響か。

0 件のコメント:

コメントを投稿