iモード携帯電話用Java(iアプリ) Part 7
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGDoCoMo以外は下記スレへ。
CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1091798483/
過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/
Part 6 http://pc5.2ch.net/test/read.cgi/tech/1091286071/
0002デフォルトの名無しさん
NGNGNTT DoCoMo - iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
Java[tm] 2 Platform, Standard Edition v 1.4
http://java.sun.com/j2se/1.4/ja/
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
Eclipse.org
http://www.eclipse.org/
■ 機種依存情報
ん・ぱか工房(iアプリ機種依存情報)
http://www.saturn.dti.ne.jp/~npaka/
NTT DoCoMo - アプリケーション作成上の注意点
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/
■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)
Java Blender
http://web.yl.is.s.u-tokyo.ac.jp/amo/JavaBlender/
jarg - Java Archive Grinder
http://jarg.sourceforge.net/
0003デフォルトの名無しさん
NGNGギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/
ゲームチャンネルi
http://appli.channel.or.jp/pc/i/
■ 携帯関連ニュース
ITmedia:モバイル
http://www.itmedia.co.jp/mobile/
ケータイ Watch
http://k-tai.impress.co.jp/
Nekomaru What's New
http://snget.hp.infoseek.co.jp/news/news_index.htm
■ 関連板
携帯アプリ板
http://news6.2ch.net/appli/
携帯・PHS板
http://etc.2ch.net/phs/
0004デフォルトの名無しさん
NGNG【初心者】Java質問・相談スレ58【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1102420209/
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG乙カレイドスター
0007デフォルトの名無しさん
NGNGpublic void keyPressed(Panel p, int param) {
if (param == Display.KEY_LEFT) {
中身
}
}
が作動しないんですが、
これはフォーカスか何かが関係しているのでしょうか?
0008デフォルトの名無しさん
NGNGkeyPressedってKeyListenerだっけ?
KeyListenerは、フォーカス移動とかに使われるキーを押しても呼ばれないよ。
それらのイベントはフォーカスマネージャーとかに消費されちゃうから。
だから、実質的にKeyListenerで捕捉できるキーイベントって数字キーくらいじゃないかなあ。
0009デフォルトの名無しさん
NGNGありがとうございました。
だから数字キーでは動いたわけなんですね。
ではフォーカス移動の方で代用してみます。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG土日またいであげないと、土日プログラマの人が最終ログとれないじゃないか。
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGエラー!
------------------------------------
ページがありません
氏ね
0014デフォルトの名無しさん
NGNGDoja-3.5プロファイルで組んでいる時にjarの容量が32kを越えたとたん
実機でエラーになります。
トレースではmessage = Maximum byte code length (32KB) exceeded
となるんで、容量制限みたいな物に引っ掛かってるんだと思われるんですが
jarを100k使いたい場合にはjam等に特別な表記がいりますか?
もしくは解決法ご存じの方ご教授願います
0015デフォルトの名無しさん
NGNGひとつのメソッドの中で大量の配列を確保したらそんなエラーが出たような記憶が。
ごめん、うろ覚え。
もし心当りがあったら、複数のメソッドに分けるなりして減らしてみ。
0016デフォルトの名無しさん
NGNGdat落ちした初心者スレで昔見たような‥
jarのファイルサイズは関係ないし、エミュでもエラーになると思うが、
・巨大なメソッドがある →分割汁
・巨大な配列を初期化している →バイナリファイルにしてリソースへ
よく知らんけど、起動時のベリファイにサイズ制限があるっぽい
001714
NGNGエミュでもエラーになります
(ALERT: Maximum byte code length (32kB) exceeded)
たしかに巨大なメソッドがあるし、配列もそこそこ大量にあります。
さっそく分割できるとこを探して分割したりしてみます。
助かりました。有り難うございます。
0018デフォルトの名無しさん
NGNGまあ、「バイトコードの最大長(32KB)超えてまんで」とハッキリ言ってるわけだが。
001914
NGNG1つのメソッドで32k越えるとそういう風になるみたいです。
メソッド分割したら、あっけなく動きました。
アドバイス感謝です!
0020デフォルトの名無しさん
NGNG音声ファイル(wav)をアプリで再生することについての質問です。
PsmPlayerでwavファイルをmldに変換しようとすると
変換時に機種名を指定するようになっています。
ってことは、機種別に専用のmldファイルを用意する必要があるということでしょうか?
何が言いたいのかというと
機種をN用と指定して変換した音声ファイル(MLD)が他の機種で再生されないのです。
できれば全機種用のMLDを用意したくないので
なにか抜け道があればいいのですが。
だらだら長文スマソ
0021デフォルトの名無しさん
NGNGありません。機種毎のMLDを用意しないといけないのは糞仕様です。
同系列の端末は互換性あるけどね。
0023デフォルトの名無しさん
NGNG甘い、甘すぎる。
SH505i と SH505iS は互換性が無い!
002520
NGNGPsmPlayerでMLDに変換していたら、なんと
DとかP用だけ音が割れる音声が出てきたよorz
DとP用にwavから作りなおす必要あるのか
知らなかったです
002625
NGNG別の変換ツールつかったらうまくいった
単にPsmPlayerの変換処理とwavの相性が悪かっただけみたい
0027デフォルトの名無しさん
NGNGWev2Mldとかならきちんと分けて吐いてくれるぞ。
0029デフォルトの名無しさん
NGNG音声データ10種類用意してたよ・・・
こういうところの共通化は、ずっとされないんだろうね
今後3D音声とかまでやらされた日には・・・orz
003029
NGNG003120
NGNGP900iってP505i(S) P506 とは同じじゃないんですね。
むしろP504iと同じとは...謎だ
SO505iとSO505iSもちがう
901シリーズとかどうなっちゃうんだよ〜(TT)
0032デフォルトの名無しさん
NGNGPCM音声(実際はADPCMみたいだけど)は、音源チップごとに形式が
違うから互換性がないんですよ。
0033デフォルトの名無しさん
NGNGおいおい…。Doja4.0は3D音源対応だろうが。
003429
NGNGwavから3Dのmldって出来るの?
そういう意味での3D音声って発言だったから、
先走りかなって・・・
ってか、そろそろちゃんと調べておくかな
どっちにしろ、前機種のmldさえちゃんとなってくれれば、
問題ないんだけどね・・・
003520
NGNGなるほど!そういうことですか。
確かに調べてみると
P900iとP504iは同じだけど
→ROHM製PCM音源(44.1kHz)
P505iだけなぜかSO,SH,Dとおなじらしい。
→FUETREK製PCM音源(48kHz)
P505iで48kHzに対応させたけど
やっぱり48kHzはまだイランってことで
900iで44.1kHzに戻したのかな??
0036デフォルトの名無しさん
NGNG1. N210i, N211i, N503i
2. N504i, N251i
3. N505i(iS), N900i
4. SH251i
5. SH505i
6. SH252i, SH505iS, SH900i, SH506iC
7. SO504i, premini
8. SO505i
9. SO505iS, SO506iC
10. P211i, P504i, P251i, P900i
11. P505i(iS), P252i(iS), P506iC
12. D211i, D504i, D251i
13. D505i(iS), D252i, D506i
14. F211i, F503i
15. F504i, F251i
16. F505i(GPS), F900i, F506i
ひょえ〜
こんなに種類があるんだ
マンドクセ
0037デフォルトの名無しさん
NGNGSystem.getPropertyして機種名を調べて、対応するMLDを
サーバからダウンロードしようと思ったのですが、新機種が
出るたびにソースを変更する必要があるので、なんか気が
ひけます。でも機種別にjarとjamを用意するのも、これだけ
たくさんあると、こっちの方法も気がひけますね。
皆さんはどうしてますか?
0038デフォルトの名無しさん
NGNGMLDを吐くCGIでなんとかなりそうだけど。
移動機からサーバに機種名を教えて、サーバ内で機種名に該当するMLD
を探し、移動機に返してあげる。
0039デフォルトの名無しさん
NGNGsnd1_d505i.mld
snd1_n900i.mld
・・・
という風に機種名をつけたファイルをファイルをサーバにアップ。
んでプログラム側は
String s = "snd1_" + System.getProperty("microedition.platform").toLowerCase() + ".mld";
とすれば取ってくるべきサウンドデータ名ができる。
あとはそれを通信で取ってこればjarもjamも変えずにサウンドデータだけUPするだけで
いいから楽チン。
実際は複数のMLDをバイナリ結合するとか、もうちょっと凝ったやり方してるけど
概要はこんな感じでやってるよ。
0040デフォルトの名無しさん
NGNG>>38
なるほど、cgi使って振り分ける方法もありますね
いいかもしんない。
>>39
これ、ナイスアイディアって思いました。
参考にさせていただきます
0041デフォルトの名無しさん
NGNG「com.nttdocomo.ui.UIException: Can't set media sound while playing」
という例外が発生して困ってます。
一応、再生中と setSound が重ならないように、setSound 前に stop を
行うようにしてます。
google で検索してみると、D505 系ではシステム負荷状態でサウンド操作を
連続して行おうとすると発生する、と書いてました。
ttp://www.nttdocomo.co.jp/p_s/imode/java/pdf/d505is_iappli_notes_1.pdf
で、質問なんですが…
1.この例外って、N系でも問題は同じなんでしょうか?
それとも、別の要因で、このメッセージが出ているんでしょうか?
2.D系と同じ場合は、連続させないようにしてやれば良いんですが、
もし違う場合はどうすれば防げますか?
どうか、よろしくお願いします。
0042デフォルトの名無しさん
NGNG漏れはこうやった
・例外が出なくなるまでひたすらループ(BGMとか)
「N504i(S) iアプリ作成に関する注意事項」を参照汁
ttp://www.nttdocomo.co.jp/p_s/imode/make/java/index.html
・音が抜けても気にしない(効果音とか)
0043デフォルトの名無しさん
NGNGうお、すげー参考になった!
そうか、504のPDFね。だから、505のPDFには載ってなかったのね(泣)。
つうか、「例外はエラー処理してアプリ終了」、つう概念で固まってたんで目から鱗です。
どうもありがとう〜。
004442
NGNGこのスレと少し関係ないかもしれませんが、iアプリからネットのページを見るようにしたいのですがやり方がわかりません。
今、ランキング機能のiアプリを作って得点を送信するところまでは作ったのですがそのランキングにiアプリ起動中から直接飛ぶ方法がわからない状態です。
わかる方いましたら、どうか教えてください。
0045デフォルトの名無しさん
NGNG素直にリスナーを使って、AudioPresenter.AUDIO_COMPLETEのイベント通知を
待つのがいいんじゃないだろうか。
0046デフォルトの名無しさん
NGNGAPIリファレンスに載ってるんだけど読んでる?
IApplication#launch(int target, String[] args)
targetにLAUNCH_BROWSER、argsにurlを指定汁
0047デフォルトの名無しさん
NGNGIApplication.launch()でwebブラウザに飛んでくか、
アプリからhttp connection開いてページ読込みすればいいんじゃ内科
004844
NGNGご回答ありがとうございます。APIリファレンスは読んでませんでした。
そして、リファレンスを読んでlaunchのところを見てみましたが、String[] argsのところがよくわかりません。
質問ばかりで申し訳ないです、argsにurlを指定の仕方あたりを詳しく教えてください。
004944
NGNGなので、どうやらADFの設定がだめらしいです。難しい・・・・
0050デフォルトの名無しさん
NGNGlaunchは使用しているかどうかをADF(jamファイルのことね)に
宣言してやらないとエラーになる。
jamを開いて「UseBrowser = launch」を追加するべし。
005144
NGNGありがとうございます!!何とかちゃんと走りました。
ちなみに、エミュレーターで「サイトに接続しますか?」にyesってするとブラウザを開いてページを表示するのではなく終わるのは正しく動いているって事でしょうか?
自分docomoじゃないので、携帯使ってテストできないもので。
0052デフォルトの名無しさん
NGNG携帯でもブラウザ開くとアプリは終わる。
0053デフォルトの名無しさん
NGNGいいからとっととAPIリファレンスとコンテンツ開発ガイドを読め。
他人に質問していいのはそれからだ。
0054デフォルトの名無しさん
NGNGランチが正常に起動した場合はアプリはそこで終了。
余談だが注意すべきところもある。
エミュで出てくるように必ず選択肢が出てくるのだが
操作については機種依存。エミュのようにソフトキーの場合もあれば
ダイアログで上下+セレクトキーで選んでたりする。
よってユーザーが接続を拒否した場合の動作を意識して作る必要がある。
拒否された場合はレジュームが発生した後呼び出したところから復帰らしい。
のでキー情報をどのように扱ってるかによってはちゃんと処理入れないと
再びランチ呼び出したりすることがある。
戻ってくるときはキー情報はクリアしておくのが妥当かも。
005544
NGNG結構いい感じになってきました。
005644
NGNGできました!自分的にはある程度納得の中身になりました〜
0057デフォルトの名無しさん
NGNGTransparentImageはPanelでは動作しませんか?
(※エミュレータ上の話で、機種依存という意味ではないです)
Canvasでは動作Panelでは動作しませんでした。
いろいろ探してみたんですが”動作しません”と書いてある記述がみあたらんのです
0058デフォルトの名無しさん
NGNGAPIリファレンスに
>端末によってサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。
って書いてあるから、そのまんまではないかと思われ。
エミュレータでは動作不可でも、実機では動くのかもしれない。
それと透明色があるってことは、何かの画像に上書きするような
使い方をするんだろうから思うから、単体でPanelに貼るのは「?」って気がする。
005944
NGNGまた、他の機種では動いたりもします。
原因が全くわかりません。
何かわかる方がいましたら教えてください。
006044
NGNGttp://asamizodai.hp.infoseek.co.jp/Hira.java
どうか、アドバイスよろしくお願いします。
0061デフォルトの名無しさん
NGNGlaunch(...)は例外をスローするはずだけど(↓の資料)
http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#launch(int,%20java.lang.String[])
http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#LAUNCH_BROWSER
コードみるとキャッチしてないみたいよ。
まず例外をキャッチしてみて、何の例外がスローしているか
調べてみては?
006244
NGNGどうにかなりませんか?
0063デフォルトの名無しさん
NGNG例外処理が分からんとなると、先に進めませぬ。
薄い本でいいので(Googleで探すんでもいいけど)、
お勉強してくださいな。
006444
NGNGADFの設定でエラーが出たりしているような気もします。
頭がこんがらがってきました・・・・。
0065デフォルトの名無しさん
NGNG1:もっと勉強する>>53
2:あきらめる
つーか、これだけ簡単に情報が手に入る時代なのになんで自力で調べないかね?
アプリの作り方を覚える気が無いとしか思えないよ
0066デフォルトの名無しさん
NGNG一から勉強し直したほうがいいって。
0067デフォルトの名無しさん
NGNGmoji[]の初期化とか、スコアの判定とか、書いてて変だと思わなかった?
インデントしてないのも謎。見づらいでしょ?
0068デフォルトの名無しさん
NGNGかなり厳しいな・・・。だがそれ以前に気になったのも多数あるけど。
気になった点
1:getWidth()とかgetHeight()が異常に多い。
最初にWy,Wxでゲットしてる意味がなさすぎ。
2:getKeypadState()の使う場所がおかしい気がする。
キープレスイベントで取得した時にも使った方がレスポンスが良くなる。
流れの中の一瞬だけとる今の形だとスリープ中とか押しても反応ない。
携帯は速度遅いので結構読み取り出来ない操作がでてくるかと。
3:当たり判定と注釈されてる下すぐのテキスト軍はまとめた方が良いかと。
数値も文字列も配列で初期化すべきかと。でかすぎる。
String moji[] = {"あ","い","う","え",〜〜};とか上の配列も初期化すると楽かと。
4:paintの中で総ての処理を入れてるのお勧めできない。
5:文字を良く使ってるが起動時にフォントのサイズを一定にしておくべき。
フォントを作ってそのサイズをつかって文字を計算して描画すれば綺麗に。
6:使ってるエディターの問題かもしれないけどifとかwhileの{}の階層が
判りにくいと思うぞ。
006944
NGNG全くそういった事を考えずに動けばいいや的な考えで書いておりました。
結局、動かないわけですが・・・・。
他人のソースなどを見て勉強したいと思います。
0070デフォルトの名無しさん
NGNGまぁソースなんてものは自分しか見ないなら何でもいいのだがね。
でもあの書き方だと自分も理解しづらいかとおもうぞ。バグ取りに苦労する。
さて、せっかくソース出たのでコンパイルしてエミュ上で動作させてみた。
これって動作機種・・・504とか505とか指定してないけど
どれでも動くようにしてるんだなとは思う・・・のだが、これはまずいぞ。
画面サイズは機種によって全然統一されてないので移動速度の計算が
機種によって差がでる。ランキングしてるならここらは統一しないとな。
ゲームオーバー時に表示される文字も機種によってばらばらで
画面からはみ出てると思う。特に504は。
起動時のネームエントリーは戻る事ができず不便。
ゲーム自体は悪くは無いが・・・ゲーム開始時から絶対に回避不能の
シーンがランダムゆえ出るのだが・・・多少サイズ制限すべきかと。
質問の不具合はまだわかんね。
007144
NGNGやっていただいてありがとうございます。
対応機種は一応505をベースとしていて、504でもできない事はないくらいの気持ちで作りました。
難易度はまだランキング対応でない頃「理不尽に死ぬのがまたいい」という感想をいただき直しませんでした。
しかしご指摘の通りランキング対応になった今、直すべきかもしれません。
僕自身がdocomoでない上にアプリのついていない携帯なので実機でのテストなのができないもので・・・。
0072デフォルトの名無しさん
NGNG何度も書き込みしてあれだが・・・機種によって動く動かないってのを考慮してみると
おそらくダウンロードしたユーザーがそのアプリに対してネットワーク接続を許可してない
可能性が高いかと。で、接続許可してないのにブラウザ呼び出してエラー発生。
キャッチの記述が無いのでそのまま携帯がエラー停止を行う。って感じかもな。
エラーでると言ってる連中にソフトの設定を調べてもらえば。
こっちでやるにはパケ代がもったいなry
0073デフォルトの名無しさん
NGNG>2:getKeypadState()の使う場所がおかしい気がする。
>キープレスイベントで取得した時にも使った方がレスポンスが良くなる。
キープレスイベントを待つ形で実装するとレスポンス悪くない?
以前はそうやってたんだけど、ループ内で毎回getKeypadState()を呼ぶ方が
キーレスポンスがいい。
0074デフォルトの名無しさん
NGNGところで、>>53>>65>>66のような辛口のアドバイスについてはどう考えている?
都合の悪いものは無視、というスタンスだとそのうち誰も相手してくれなくなるよ。
0075デフォルトの名無しさん
NGNGすまん・・これ関係ないwwwww
実験したら正常に接続される場合、アプリは既に終了してるから関係なかったw
0077デフォルトの名無しさん
NGNGアプリ内容で変えてはいるけど、基本的にキープレスイベントを使用しない場合は
動作の速度に関わらず使わないとレスポンス悪いと思ってるんだけど・・。
内容1:アプリが押された瞬間しか必要としない場合
変数2個用意。仮に変数K1、K2とし初期化しておく。
キープレスイベントの中では呼び出されたらK2 |= getKeypadState();を実行
処理のループの先頭でK1にK2をコピー、K2をクリアする。実際の処理はK1を参照。
内容2:長押しとかも必要な場合
上の処理に、K1にコピーした後K1 |= getKeypadState();をして現在の状態も付加する。
内容3:離された瞬間も必要な場合
K3を用意してK1にコピーする前にK3 = K1; でバックアップをしておく。
多少内容違えど大体上の感じでやってるけどなぁ・・・。
毎回1回だけのgetKeypadState()だと特に昔の遅い機種では拾えない事が多かったのだ。
0078デフォルトの名無しさん
NGNGこんなのは?
int key;
int lastkey = getKeypadState();
while( (key=getKeypadState()) == getKeypadState() ) Thread.yield();
メニュー画面とかそういう、「キーが押されない限り画面は変化しない」みたいな局面とか
「任意キーで次へ進む」みたいな処理に意外と使えるので重宝してる。
0079デフォルトの名無しさん
NGNGキー情報をクリアしたいのですが、どうすればできるのでしょうか?
現在、「いいえ」を選択した後、アプリに戻った時にキー情報がそのまま判定されてしまい
次の処理に行ってしまうのでこれを回避したいのですが…
0080デフォルトの名無しさん
NGNG自前のキーバッファ持ってない? それは知らん。君の設計ミスだ。
0081デフォルトの名無しさん
NGNGぬう・・・ちと理解できんです。
もしや・・・whileの比較の所の右の値はlastkeyの間違い?とか思ったけど。
その文だと永久ループに突入しそうなんだけど・・。
>>79
終了ボタンを押してってのはシステムのダイアログを出した後話だよね?
80でも同じこと言ってるけど持っているキーの情報をレジュームで消す方法と
レジュームの中で永久ループを作り延々とキーを取得、その情報が「何も押されていない」状況
になればループを抜けるようにすればバッファもってなくても対処にはなるんじゃないかな?
0082デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGiアプリからも再生できるんでしょうか?
それとも他に高音質なフォーマットに対応してますでしょうか?
あとjigチャンネルって内部どうなってるか分かるかたおりますでしょうか?
どうかよろしくお願いします
0086デフォルトの名無しさん
NGNGメーカーに問い詰めろ
0087デフォルトの名無しさん
NGNG計算スピードはどうよ?
0088デフォルトの名無しさん
NGNG常識的に考えれば。(しかしiアプリは常識が通用しない世界)
008979
NGNG機種によってキーを判定するタイミングが違うので
RESUME内で何も押されていない状態まで
無限ループで待つ方がいいみたいです
0090デフォルトの名無しさん
NGNGAACファイルは動かせないとオモ。
保存する領域がiアプリの動かせる領域と異なってるんじゃないの?
もし、動かせたら電話帳データとかその他データをいじることもできるはず。
0091デフォルトの名無しさん
NGNGとりあえずパラメータは↓
blender [cwd] [-strong|-normal] [jam file] [class file(s)]
sname [cwd] [jam file] [class file(s)]
smap [cwd] [class file(s)]
みたいなんだけど、あんまりうまくいかず・・・。
どなたか動作してるバッチか、パラメータの詳細晒してくださいませ。
教えてエロイ人!!
0092デフォルトの名無しさん
NGNG>[cwd] はクラスファイルが置かれているディレクトリを指定します。
>[class file(s)] は [cwd] からの相対パス名で指定します。
> [-strong|-normal] は圧縮率の調節に使います。
>これらのツールを使うとクラスファイルは削除され、新しいクラスファイルが [cwd] で
>指定したディレクトリに生成されます。
>この三つツールはプラットフォームの種類ごとに別々のツールが用意されています。
> 404i, 405i などのアプリを処理するには専用のツールを使う必要があります。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG押しっぱなしで高速スクロールできるし。
0095デフォルトの名無しさん
NGNGアプリ起動直後の通信では問題ないんですが、起動してしばらく動かした後の通信で
ConnectionExceptionが起きてしまいます。
なぜかSH900iとF900iだけで発生して、ConnectionException#getStatus()の
値を見るとSYSTEM_ABORTかTIMEOUTになるようです。
手元に実機がないので詳しく調べることもできずに困ってます。
どなたか同じような症状になったことありますか?
0096デフォルトの名無しさん
NGNG009795
NGNG起動直後の通信でも4個のファイルをダウンロードしにいって
成功しているので、通信処理の実装は大丈夫だと思うんですよね。
問題の通信の時もまったく同じ処理を行っています。
アプリをしばらく動かしたあとに発生するという事で、ヒープの
問題か、その他機種依存の問題かなと踏んでるんですが・・・。
0098デフォルトの名無しさん
NGNG> 成功しているので、通信処理の実装は大丈夫だと思うんですよね。
わかんねぇぞ。該当コードをさらしてみ。
ちなみに自分のとこではSHとFの実機で
数十回以上HTTP通信するアプリ動かしているけど
まったく問題でてないよ。
0099デフォルトの名無しさん
NGNG010095
NGNGpublic int fileDownload(String url, int pos) throws Exception {
byte[] data = httpGet(url);
OutputStream out = Connector.openOutputStream("scratchpad:///0;pos=" + pos);
out.write(data);
out.flush();
out.close();
int ret = data.length;
data = null;
System.gc();
return ret;
}
010195
NGNGbyte[] data = null;
HttpConnection conn = null;
InputStream in = null;
try {
conn = (HttpConnection)Connector.open(url, Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
conn.connect();
in = conn.openInputStream();
data = new byte[(int)conn.getLength()];
in.read(data);
} finally {
try {
if (in != null) in.close();
if (conn != null) conn.close();
} catch (IOException ioe) {}
}
return data;
}
■ このスレッドは過去ログ倉庫に格納されています