[Java] auオープンアプリを触ってみた
2009.09.22 |Category …Java
激しく今更感があるのですが、auの携帯についているJava仮想マシン、auオープンアプリに触ってみました。
コンパイラはSun Java SDK, コンパイルに必要なライブラリやメタファイル生成用のツールとしてJ2ME Wireless Toolkit 2.2とやらを使うという事でJ2ME Wireless Toolkitをダウンロード&インストール。
このToolkitがリリースされた当時はJDK1.4.2だったらしく、「JDK1.4.2ではテストしましたよ~」みたいな事が書いてあったが無視して6.0環境にインストール。
でもって、WirelessToolkitのプロジェクト管理ツール「KToolbar」を起動してプロジェクトを作成し、Javaソースを書いて属性をいじって、ビルド=>実行=>「HelloWorld」・・・※1
よしよし。できたできた。
でわ、他所で借りているサーバにFTPでアップして*.jadファイルをダウンロード!
携帯:「対応して無いっす。無理っす」
うーん。どうやら、ダウンロード時にHTML側で属性を定義しないとダメっぽいです。
HTMLを作成して、こんな感じに
<html><body>
オープンアプリゲーム</br>
以下のリンクをクリックしてください。
<a href="device:jam?http://鯖/HelloWorld.jad">ダウンロード</a>
</body></html>
これでリンクを叩けば・・・
今度はダウンロード中にエラーになった。
FireFoxで接続してヘッダを見てもなんとなくアプリっぽいヘッダを返しているように見えるけど、.htaccessでContent-Typeを指定してみる。
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/Java-archive jar
さて、今度はダウンロードまではうまくいった。
しかし、起動時に
携帯:「変なのが来たからうごかねーぜ(F7)」
とか言われた。
ここまではさくさく解決できたのですが、ここからがはまりましたわ。
はまった理由がまずエラーコードらしき「F7」。
これがなんだかわからない。auに行ってもリファレンスが無いしぐぐっても出てこないし。
エラーをコード表記するのであれば開発者用のリファレンスが欲しいところです。実際はあったりする?
で、小一時間さまよってみたのですが拉致があかないのでエミュレータで起動してみる。
※1の通り、普通に表示できている。
では、ソースの中身をコメントアウトして文字列をいろいろ変えてみても表示は変わらず。
このときに初めて「実行」ボタンで表示されるのがエミュレータ上のランチャー(アプリ一覧)である事に気づきました。
「実行」ボタンを押して、ランチャーの中にある文字列を選んで「SELECT」って押すとようやく該当アプリのJarがキックされる仕様っぽいです。
SELECTボタンを押したときにToolbar内部にスタックトレースが表示されていて、結局の原因はメタファイル(*.jad)作成時に実行クラス名を間違ってたことでしたー。しょーもな。ClassNotFoundException。
で、jadを編集してFTPして読み込んだら普通に動作した、かと思いきや今度は起動はするが画面に何も表示されない。
こっちは属性設定でCLDC1.0からCLDC1.1に変えたら表示できたので色の指定の仕方とかバージョンによって仕様がちょっと値がうのかもしれないですね。
つーか、結構めんどくさいのね。これ。
まだEclipseプロジェクトにもしてないし、もう少し弄ってあげる必要がありそうです。
コンパイラはSun Java SDK, コンパイルに必要なライブラリやメタファイル生成用のツールとしてJ2ME Wireless Toolkit 2.2とやらを使うという事でJ2ME Wireless Toolkitをダウンロード&インストール。
このToolkitがリリースされた当時はJDK1.4.2だったらしく、「JDK1.4.2ではテストしましたよ~」みたいな事が書いてあったが無視して6.0環境にインストール。
でもって、WirelessToolkitのプロジェクト管理ツール「KToolbar」を起動してプロジェクトを作成し、Javaソースを書いて属性をいじって、ビルド=>実行=>「HelloWorld」・・・※1
よしよし。できたできた。
でわ、他所で借りているサーバにFTPでアップして*.jadファイルをダウンロード!
携帯:「対応して無いっす。無理っす」
うーん。どうやら、ダウンロード時にHTML側で属性を定義しないとダメっぽいです。
HTMLを作成して、こんな感じに
<html><body>
オープンアプリゲーム</br>
以下のリンクをクリックしてください。
<a href="device:jam?http://鯖/HelloWorld.jad">ダウンロード</a>
</body></html>
これでリンクを叩けば・・・
今度はダウンロード中にエラーになった。
FireFoxで接続してヘッダを見てもなんとなくアプリっぽいヘッダを返しているように見えるけど、.htaccessでContent-Typeを指定してみる。
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/Java-archive jar
さて、今度はダウンロードまではうまくいった。
しかし、起動時に
携帯:「変なのが来たからうごかねーぜ(F7)」
とか言われた。
ここまではさくさく解決できたのですが、ここからがはまりましたわ。
はまった理由がまずエラーコードらしき「F7」。
これがなんだかわからない。auに行ってもリファレンスが無いしぐぐっても出てこないし。
エラーをコード表記するのであれば開発者用のリファレンスが欲しいところです。実際はあったりする?
で、小一時間さまよってみたのですが拉致があかないのでエミュレータで起動してみる。
※1の通り、普通に表示できている。
では、ソースの中身をコメントアウトして文字列をいろいろ変えてみても表示は変わらず。
このときに初めて「実行」ボタンで表示されるのがエミュレータ上のランチャー(アプリ一覧)である事に気づきました。
「実行」ボタンを押して、ランチャーの中にある文字列を選んで「SELECT」って押すとようやく該当アプリのJarがキックされる仕様っぽいです。
SELECTボタンを押したときにToolbar内部にスタックトレースが表示されていて、結局の原因はメタファイル(*.jad)作成時に実行クラス名を間違ってたことでしたー。しょーもな。ClassNotFoundException。
で、jadを編集してFTPして読み込んだら普通に動作した、かと思いきや今度は起動はするが画面に何も表示されない。
こっちは属性設定でCLDC1.0からCLDC1.1に変えたら表示できたので色の指定の仕方とかバージョンによって仕様がちょっと値がうのかもしれないですね。
つーか、結構めんどくさいのね。これ。
まだEclipseプロジェクトにもしてないし、もう少し弄ってあげる必要がありそうです。
PR
●Thanks Comments
●この記事にコメントする
●この記事へのトラックバック
TrackbackURL: