Hatena::ブログ(Diary)

WEBサービス 情報局

2011-08-26

Titanium mobile -- Android でrequire()エラー

TitaniumAndroidってまだまだやなぁ)

CommonJSに準拠しているっていうから、require()を利用して関数を共通化していたのに、
Androidエミュレーター上でエラーが出て、実機上だとOKになるケースが発生。
ちなみに、iOSでは全く問題ない。

エラー内容

Message: Wrapped java.lang.IllegalArgumentException: size must be >= 0 (file:///android_asset/Resources/app.js#1)


環境

原因

Androidビルド時にFastDevを利用したモードの場合だと、require()できないみたい。
サイテー!

対応方法

FastDevを利用しないこと。しかし、ビルドに時間がかかりすぎるのでそれは避けたい。
どうすれば良いのか?? 調査中ですが厳しい感じ。今のところ実機でやるのがベター!?

FastDev の停止方法*1

tiapp.xmlをコード編集で開いて以下1の1行を <ti:app xmlns:ti="http://ti.appcelerator.org"> の後ろに追加する

<property name="ti.android.fastdev" type="bool">false</property>



参照URL

http://developer.appcelerator.com/blog/2011/08/forging-titanium-episode-1-commonjs-modules.html

*1:1回のビルド時間が長いというデメリットあり

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ikhatehate/20110826/1314338011
Connection: close