iモード携帯電話用Java(iアプリ) Part 7
レス数が1000を超えています。これ以上書き込みはできません。
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;
}
010295
NGNGpublic byte[] httpGet(String url) throws Exception {
byte[] 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;
}
010395
NGNG0104デフォルトの名無しさん
NGNG>>100で conn.getLength() が0を返す場合も考慮して組んでみて。
具体的には>>100の byte[] data = httpGet(url); の次に
if (data.length == 0){ エラー処理 }
を入れるなど。エラーが出るときは多分ここで引っかかるんじゃないかな。
(予想だ。外れたらごめん。)
サーバとの通信でデータを受信する場合にconn.getLength()の戻り値に関して
過去ログで何度か出てきてる。非ゼロなら一度にバッファをとるが、
ゼロだった場合は1バイトずつ読み込んでいく処理を実装する。という話。
0106デフォルトの名無しさん
NGNGパッケージ com.nttdocomo.ui.util3d の説明
3D グラフィックスや 3D サウンドで使用するユーティリティクラスを定義します。
各種の float 型(浮動小数型)の演算は、システム内部にて整数演算に変換されて行われます。従って演算結果には誤差が出る可能性がありますが、通常の float 型による演算に比べて、高速に結果を得ることを期待できます。
ってことだから3Dと浮動小数点の性能はあまり関係ないっぽい。
まぁ、3.5までのGraphics3Dが固定小数点でやってたから互換性を
考えたらここで浮動でやるわけにもいかんのだろう
0107デフォルトの名無しさん
NGNG単に通信状態が悪いだけじゃないの?
010895
NGNGこれを試していますが今のところまだ解決していません。
>107
それがP900iやSH901等だと一度もエラーにならないんですよ。
0109デフォルトの名無しさん
NGNGだが私はSH900やF900で問題が起きたという報告をされたことがない。
すごく単純な(認めたくない)ケアレスミスだと思う。
例えばURLが間違っているとか。
0110デフォルトの名無しさん
NGNGそれ、さらっととんでもないことが書いてあるような気がするんだけど。
バイトコードでfloat型使おうが、勝手に固定小数に変換して演算しますってこと?
CLDC 1.1ってこういうの許してるワケ?
そういやJ2SEも浮動小数「演算」はデフォルトでIEEE準拠じゃないけど、
こんなデタラメな精度低下を招く実装は正直ありえんと思うんだが。
浮動小数は使えませんってのと同義じゃん。(double型は大丈夫とか?)
SH901iあたりもう手元にある人、どうよ? ていうか何かの間違いであって欲しい。
0111デフォルトの名無しさん
NGNGあくまでutil3dパッケージにあるクラスの演算内での話だと
思うけど。
たとえばVector3D#add( float x , float y , float z )とか。
普通に
float a = 0.1 , b = 1.0;
a += b;
とかやったらちゃんと浮動小数点数で計算されるんじゃね?
実際に試したわけじゃないからわかんないけど・・・
0112デフォルトの名無しさん
NGNGhttp://www.st.rim.or.jp/~nakata/
しかしダウンロードページは表示でき、iアプリをダウンロードできているようなのですが
ダウンロード後に「ソフトに誤りがあります」と出てiアプリの実行ができません。
同じiアプリをプロバイダのホームページスペースにアップロードした場合は
正常に実行できています。
(jarファイルとjamファイルのMIMEタイプは「application/octet-stream」に設定しています
何か他に注意すべき点があるのでしょうか。
0113デフォルトの名無しさん
NGNG0114112
NGNG問題ないのでADFの問題ではないかと思うのですが。
0115デフォルトの名無しさん
NGNGPackageURLをFDQNで書いてるとか?
0116112
NGNGちょっとお手上げ状態です。
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGjam application/x-jam
にしてみたら?
0119デフォルトの名無しさん
NGNGfloat 演算は使えるよ。ただ恐ろしく遅い予感がする。
0120デフォルトの名無しさん
NGNG単純に。
FTPでUPするとき、バイトとバイナリをきちんとしてあげてるか?
0121デフォルトの名無しさん
NGNGVector3Dにわざわざこんな本来当たり前の必要のないこと書いてるあたりからも、
それで正しいのかな。
> 設定された float 値は、なんらかの演算が行われるまでの間、 その内容は
> まったく変わらずに保持されます。 具体的には、例えば setX(float) メソッド
> によって値 x を設定した直後に、 getX() メソッドによって取得した値 a を比
> 較するとします。 そのとき、 x==a は常に真です。
いずれにしても相当ひねくれた実装っぽいね。
FastMathだけとかならまだ理解できなくもないが……。
0122デフォルトの名無しさん
NGNGセキュリティ関係ですか?
デフォでsetTransparentEnabledがfalseなのは何のためですか?
ドキュモさん透明色を高速に扱えるAPIを提供してください。
0123デフォルトの名無しさん
NGNGスレ違い。
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGweb サーバの違いで、テキストファイルの改行コードがかわっちゃってた時があったがな。
アプリがそのテキストファイルをダウンロードして処理するときの話な。
jam はその辺、シビアかも。
あとはどのあたりで失敗するのかねえ?
jam のダウンロードさえできないのか、
jar のダウンロードができないのか。
jar ならどのあたりでダウンロードできないのか。
案外、jar の content-type とか。
指定しろってどっか書いてたっけ?
あとは、DoJa の SDK のサンプルでも試してみれ。
0128デフォルトの名無しさん
NGNGどうやったらいいのでしょうか?
現状では何度キャンセルしてもQRコードの読み取り機能が立ち上がってしまい
QRコードを認識するまでアプリに戻れません。
ソースは以下のような感じです。
try {
cam.read();
} catch (Exception e) {
}
str3=cam.getString();
0129デフォルトの名無しさん
NGNGpublic void componentAction(Component source, int type, int param)
{
if(source == anchorSelect1)
{
Display.setCurrent(MainPanel);
}
}
これだと動かないのですがどうすればいいんでしょうか?
anchorButtonの使い方についての記載があるページがあまりないのでいまいち使い方がわかりません
0130デフォルトの名無しさん
NGNG「動かない」にはいろんなレベルがあると思うのだが、
「componentActionが呼ばれない」っていう解釈でいいんでせうか。
componentActionを実装したクラスを「リスナー」にしまちたか?
0131デフォルトの名無しさん
NGNGしてまちた すいません
コンポーネントリスナーをセットするの忘れてました
これだとエラー吐いてくれないんですね またひとつ勉強になりました
0132デフォルトの名無しさん
NGNGTimer timer= new Timer();
timer.setListener(this);
timer.setRepeat(true);
timer.setTime(1000);
timer.start();
こんな感じでTimerを使った時最初はいいのですが、
しばらくアプリを実行してるとそのうちtimer.setTime(1000);が
無視されてる様な気がします。
そのせいで、時間が経つとキーイベントが拾えなくなるのですが
何か解決法はあるのでしょうか?
用途としては1秒間に1回、変数の中身を入れ替えたいだけなのですが。
如何なものでしょうか?
0133デフォルトの名無しさん
NGNGInterruptedOperationExceptionをキャッチ
0134デフォルトの名無しさん
NGNGありがとうございました。
APIリファレンスをよく見たら書いてありましたね。
以後気をつけます。申し訳ない。
0135133
NGNG実機でためしたら、なるほど何度も立ち上がる。
0136デフォルトの名無しさん
NGNG0137132
NGNGP依存かもしれませんがstart()メソッドをエラーの出ない範囲で
再度呼び出すと(つまりエラー規定外で)setTimeの値が半減する模様
あくまで半減ってのは体感レベルですが。
結論として.stop()を一切使わないでブン回す仕様にしました。
既出だったらすません
0138デフォルトの名無しさん
NGNGtry {
cam.read();
} catch (Exception e) {
}
InterruptedOperationExceptionはExceptionが親なんだろ?
catchしてるじゃん
何度も立ち上がるってのもわからん
機種によっては変な動作をするのか、何度も立ち上がるようにプログラムを書いてるんじゃないの?
コードリーダーなのにcam(カメラ?)ってインスタンス名も謎
0139デフォルトの名無しさん
NGNGPanel2でソフトキー1を押したらPanel1でstr配列の次の文字列を表示させる・・(以下ループ)
というものを作りたいんですけど、以下のようなコードですとラベルが変わりません どのようにすればいいのでしょうか?
String str[] = {"abc", "def", "ghi", "jkl",・・・・};
int i = 0;
class Panel1 extends Panel implements SoftKeyListener{
Label label1;
Panel1{
label1 = new Label(str[i]);
add(label1);
}
public void softKeyReleased(Panel p, int key)
{
if(key == Display.KEY_SELECT) Display.setCurrent(Panel2);
}
}
class Panel2 extends Panel implements SoftKeyListener{
〜
public void softKeyReleased(Panel p, int key)
{
i++; // カウンタをインクリメントし、配列の次の要素を表示する
if(key == Display.KEY_SELECT) Display.setCurrent(Panel1);
}
0140デフォルトの名無しさん
NGNGlabel1を初期化するコードはあっても、
更新するコードが見当たらないようでふ。
Panel2のsoftKeyReleased内で、iをインクリメントしたあとに
label1.setText( str[i] ) ←メソッド名うろ覚え
としなければならないのでわ?
0141デフォルトの名無しさん
NGNG{
if(key == Display.KEY_SELECT) Display.setCurrent(Panel2);
i++;
label1.setText( str[i] )
}
}
とやったらできました ありがとうございました
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG出来る場合はヒントをいただけますか。
0144デフォルトの名無しさん
NGNGムリ。
コンポーネントを非表示にすることならできるが、
配置済みのスペースは埋まらない。
0145デフォルトの名無しさん
NGNG以下のコードですと1問目はいいのですが2問目ではPanel2の表示がうまくいきません どのようにすればいいのでしょうか?
http://uploader.zive.net/file/2853.txt
0146デフォルトの名無しさん
NGNGこれってiアプリにする意味あるの?
HTMLで作った方がいい気がするけど。
0148デフォルトの名無しさん
NGNGみたいなのが要るんじゃないの?
0149145
NGNG回答ありがとうございます。
ですが、どこに入れればいいのかがわかりません。
下のように入れると(Panel1のソフトキーリリース)当然「シンボルを解決できません」とエラーが出ます。
下のコードですと、どこに書けばいいのでしょうか?
http://uploader.zive.net/file/2930.txt
0150デフォルトの名無しさん
NGNGJavaの勉強してからiアプリ作ったほうがいいよ
0151デフォルトの名無しさん
NGNGとにかくJava言語の基礎をちゃんと勉強しろ
0152デフォルトの名無しさん
NGNGもう少し具体的に言うと、オブジェクト指向とはどういうものか、
そのプログラミング(設計)の仕方とかをまず身に付けろってこと。>145
iアプリを作りながら覚える前に、本とか解説サイトを見て勉強。急がば回れだよ。
0154デフォルトの名無しさん
NGNGクラス、インスタンス、オブジェクト、コンストラクタ、オーバーライド、アクセス制限は分かりましたが、
class Test {
はクラスですよね。
string hoge = "ほげほげ";
もクラス…と本にあるんですが、"class"宣言してないのになぜクラス…?
インスタンス化したクラスをオブジェクト変数で扱い…
継承…
はさっぱりわかりません。みなさんは、どうやってオブジェクト指向を覚えましたか?
0155デフォルトの名無しさん
NGNGスレ違い
0156デフォルトの名無しさん
NGNG本当に分かってんの?
0157デフォルトの名無しさん
NGNGやはりスレ違いみたいなんで、もう少し自分でなんとかしてみます
0158デフォルトの名無しさん
NGNGアドベンチャーゲーム形式の選択肢部分にリストボックスを使ってみようと思うのですが、
リストボックスの位置や大きさを指定する場合はどのようにすればいいのでしょうか?
0159デフォルトの名無しさん
NGNGまずAPIマニュアルを読んでみて、それでも分からなかったら
「どこ」が分からないのかを再質問してくださいな。
0160デフォルトの名無しさん
NGNG細かい位置指定は出来ないよ
詳しい事はPanel、Component、LayoutManagerあたりを熟読してくれ
(見るのはListBoxじゃなくて、その親やそれに関連したクラス)
0161デフォルトの名無しさん
NGNGDoJa-3.5の公式エミュレータがRuntimeExceptionで落ちる。
Vector3D v = new Vector3D(0, 0, 0);
AffineTrans at = new AffineTrans();
at.setRotateV(v, 2048);
エミュレータは未実装?
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG4.0のDLLはないみたいだから、3.5から
内蔵になったのかと思った。わかりにくいよ!
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGD900i
0167デフォルトの名無しさん
NGNGN2002i
0168デフォルトの名無しさん
NGNG0169猫先生
NGNGそそクラスの宣言ですよん
string hoge = "ほげほげ";
Stringクラス型のhogeと言う文字列を宣言ねインスタンス(クラスの型は最初は大文字よ)
なおStringクラスは特殊なにょよ!上は短縮した記述ね
実際は…
String hoge=new String("ほげほげ");
って感じなの!わかるヽ(゜∇゜)
ちなみに右辺は初期化と同時に引き数も代入しちゃったわん(コンストラクタ)
今日のま・と・め☆
オブジェクトの生成
クラス型 変数名=new クラス型;
ヽ(゜∇゜)ノ
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG日本語文字列を強制的に数値に変換する方法はありませんか?
0172デフォルトの名無しさん
NGNGString src="数字に変換したい文字";
int res=0; // 返したい値
for (int i = 0; i < src.length; i++) {
if ((src.charAt(i)).equals("1")) {
res = 1;
} else if ((src.charAt(i)).eqals("2")) {
res = 2;
} else
略
} else if ((src.charAt(i).eqals("9")) {
res = 3;
} else {
System.out.println("死ね");
break;
}
res *= 10;
}
これで動いたらいいかもな。
デバッグしてないけど。
ま、意図くらい汲んでくれ。
つか、簡単なやり方知らねーし。
Integer.parseInt() に、元2バイト数字入れたらどうなる?
0173172
NGNG適当に治せ。
0174デフォルトの名無しさん
NGNGスレ違いだ。こっち行け>>4
0175172
NGNGついでにスレ違い反応すまん。
0176171
NGNGスレ違いだがちょっとやってみたよ。これでどう?
public int foo(String s) {
for (int i = 0; i <= 9; i++) {
s = s.replace((char)('0' + i), (char)('0' + i));
}
return Integer.parseInt(s);
}
>>172
>Integer.parseInt() に、元2バイト数字入れたらどうなる?
NumberFormatExceptionを吐くと思われ。
0177176
NGNG0178デフォルトの名無しさん
NGNG全角数字をintに変換したいのか?
そんなメソッドは無いから自作汁
0179デフォルトの名無しさん
NGNGJavaは全角数字も数字として扱ってくれると思うよ。Unicodeだから。
全角英字もtoLowerとかで全角小文字に変換してくれたりするしねえ。
例えば、
public class Hoge {
public static void main(String[] args) {
int i = Integer.parseInt("123");
System.out.println(i);
}
}
実行すると、ちゃんと「123」って表示されるよ。
ひょっとしてCLDCだとまた違う??
0180デフォルトの名無しさん
NGNG全角だったら半角に変換するってだけの処理なのでわ。
0181デフォルトの名無しさん
NGNG実際試してみたよ。確かに>>176の言うように
CLDCだとNumberFormatExceptionになる。
0182デフォルトの名無しさん
NGNGお、確かにJ2SEだと出来るね
知らんかった
0183デフォルトの名無しさん
NGNGDoja3.0を使っています。以下のソースで例外が発生するのですが、何ででしょうか。
public void start()
{
HttpConnectionhc = null;
InputStreamis = null;
Strings;
try {
hc = (HttpConnection) Connector.open(getSourceURL()+"hello.txt", Connector.READ, true);
hc.setRequestMethod(HttpConnection.GET);;
hc.connect();
・・・
でhc.connect()部分でcom.nttdocomo.io.ConnectionException
という例外をはきます。
このケースで考えられるのはどういう状態でしょうか。
PackageURL=http://..../hoge.jar,UseNetwork=http,SPsize=5120,を設定しています。
またトラステッド動作設定で通信を許可するURL=*にして、
ネットワーク設定のADFのURLをhttp://.../hoge.jam
にしています。
0184デフォルトの名無しさん
NGNGSystem.out.println("URL=" + getSourceURL() + "hello.txt");
で表示してみ。
0185デフォルトの名無しさん
NGNGいわれたとおりに表示させてみたのですが、
URLはどうやらあってるみたいです。ブラウザで確認してみました。
Dojaの設定がおかしいのでしょうか。
携帯上でも動きませんでしたが^^;
(携帯上ではPackageURLをhoge.jarに変えてやりました。)
0186デフォルトの名無しさん
NGNG>クラス ConnectionException
>通信例外を定義します。 com.nttdocomo.io, com.nttdocomo.net の入出力処理において
>例外が発生したことを示すために使用します。
>例外の詳細は getStatusメソッドで得ることができます。
0187デフォルトの名無しさん
NGNGここに書いてみ。まさかIPでアドレス指定とかしてないよね?
0189185
NGNGHTTP_ERROR
HTTP サーバがエラーを返したことを表します (=10)。
これはサーバが悪いのでしょうか??txtのファイルの属性は755です。
http://f48.aaa.livedoor.jp/~yasuf/docomo/
に一応ソースを用意しました。ご教授くださいませm(_ _)m
ちなみにhello.txtはここのサーバのを使ってます。
---------
しかもいつの間にかエラーが変わってしまいました・・・。
以下が実行結果です。
--
プロジェクト docomo を読込み中です
プロジェクト docomo を読込みました
ビルド開始
C:\iDKDoJa3.0\apps\docomo\bin\docomo.jar を作成しました
C:\iDKDoJa3.0\apps\docomo\bin\docomo.jam を更新しました
ビルド終了
URL=http://f48.aaa.livedoor.jp/~yasuf/docomo/hello.txt
ここから
10 //getStatus()
null //e.getMessage()
java.lang.NegativeArraySizeException //System.out.println(e)
--
0190デフォルトの名無しさん
NGNGURL=http://f48.aaa.livedoor.jp/~yasuf/docomo/hello.txt
バナー広告のせい?
他の鯖にするか、ローカルPCにApache入れて実験するとか
あと、closeの所はfinally使った方がすっきり書けるヨ
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGサンプルのtetrisをビルドすると
javac: ターゲットリリース 1.1 がデフォルトのソースリリース 1.5 と競合しています。
javacの実行に失敗しました
と出てしまうんですが、jdk1.5がインストールしてるのが悪いんでしょうか?
初歩的な質問で申し訳ないですが、回避方法あったら教えてください。
iDKDoja3.0 と jdk1.3.1 と jdk1.5 をインストールしてます。
よろしくお願いします。
0194デフォルトの名無しさん
NGNG初めて聞いたエラーだから間違ってるかもしれないけど、
Windowsの環境変数は正しくセットした?
一応DoJaはJAVA1.3.3対応で、他では変なエラーが出るらしい
0195デフォルトの名無しさん
NGNGttp://oshiete1.goo.ne.jp/kotaeru.php3?q=880580
解決してないけどw
0196デフォルトの名無しさん
NGNG1.3 -> 1.4 -> 1.5 でそれぞれ言語仕様が変更になってる。
1.4のときはjavacのデフォルトでは新しい仕様が無効になってるから
問題ないが1.5では有効になっている。が、この状態では-target 1.1
を使って古い仕様のclassファイルを生成できない。だから怒られる。
とりあえず環境変数PATHつかって1.3のjavacが使えるように設定だね。
0197192
NGNGみなさんアドバイスありがとうございました〜。
0198デフォルトの名無しさん
NGNGWebからダウンロードした画像はD900iとN900iは読み込めるけど
SH900i,F900i,P900iは読み込むことが出来ません。
何か解決法はないですか?
なお、再配布不可識別子は画像ファイルに設定していません。
0199デフォルトの名無しさん
NGNGケータイを機種変更する。
0200デフォルトの名無しさん
NGNG私1人が利用するアプリだったらそれでも問題無いですが、
一般公開用に作成しているモノですので…
0202デフォルトの名無しさん
NGNGの後に、〜という例外がスローされます、という文が無い
最後までちゃんと書け
0203デフォルトの名無しさん
NGNG解決したか?これでどう?
public static int MultiByte2Int(String str) {
return "0123456789".indexOf(str);
}
0204デフォルトの名無しさん
NGNGそれだと1桁の数字しか変換できないのではw
0205デフォルトの名無しさん
NGNG1桁ずつやりゃいいじゃん。"0123456789ABCDEF"なら16進数にも対応できる。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGgetStatusがHTTP_ERRORなら
web サーバがエラーを返してるってことだ。
例外キャッチしてから、HTTPConnectionのレスポンスコード確認してみるといいよ。
0208デフォルトの名無しさん
NGNG本気で質問しているのかわからないが、
1文字1文字分解して、if文のカタマリで場合分けしてくださいな。
やっぱり解析できなかったら「数値がおかしいので再入力してちょ」と
ユーザに再入力を促す。
0209デフォルトの名無しさん
NGNG低レベルAPIでGifアニメーションを表示させることは可能でしょうか?
どなたか教えていただけると嬉しいです。
0210デフォルトの名無しさん
NGNG>>174
0211デフォルトの名無しさん
NGNGjava.lang.reflect.InvocationTargetException
と出て、読み込めないんですが、何か設定が間違っているんでしょうか。
新規プロジェクトならコンパイルも起動もできるんですけれども。
WinXP、iAppli Development Kit for DoJa 3.5です。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNGPCの赤外線ポート使えるの?(IrOBEXね)
作ったアプリを携帯にダウンロードしたら対抗機にPUT出来るのに、
iDKのシミュレーターで動かすと「接続相手が見つかりません」。
libobex_irda.dllはリネームしたし、誰か救いの手をぷりーず。
0214デフォルトの名無しさん
NGNGエラーの内容をそのまんま信じると、接続相手がいないなので、
赤外線ポートが向き合ってないとか、サーバとクライアントの起動順序
を間違えているとか(サーバが最初よ)。
0215デフォルトの名無しさん
NGNGどうでもいいけどエミュレータでつよ
0216デフォルトの名無しさん
NGNG0217213
NGNGすまんげさんくすこ
>>214
いやぁ相手はPCのワイヤレスリンクなんだわ。
だから起動順序も何も無さそう。
ワイヤレスリンクは反応してるから(LAPレイヤね。TTP辺りかも知らんが)ポートは向き合ってるな。
書き忘れたが、IrSTICKをUSBにぶっさしてる。LinkEvoのドングル。
エミュレーターから叩けるのか、これ。
エミュレーターでIrOBEXのPUT出来た奴居る?
因みに開発環境はEclipse2.1.3関係ないだろうけど。
0218デフォルトの名無しさん
NGNGつまりは本当の赤外線通信はできない。
最新版のエミュだと違うのか?
0219213
NGNGまじか。
試験ツールだから手抜きで作るつもりだったのが、
試験ツールを作るために、試験対象機のエミュレータまで
作る必要があるって事か。
OBEX持ってるならIrにバッファ渡すだけだろー。それぐらいやってくれーDoJaー。
明日の俺は間違いなく死んだ。
死の宣告をさんくすこ>218
0220デフォルトの名無しさん
NGNGエミュレータの 2.22 の DevGuide 2.22 の p127 によると確かに
『TCP/IP もしくは赤外線を用いて OBEX 通信することができます』
とあるが、同梱の Releasenote 2.22 では制限事項に
『赤外線による OBEX 通信は、
〜 「i αppli Development Kit for DoJa-3.5」と移動機間での赤外線による OBEX 通信はできません』
とある。
さらに、
『なお、「i αppli Development Kit for DoJa-3.5」同士の赤外線による OBEX 通信は可能です』
とある。
意味ねえ。
0221213
NGNG日本中でそれに引っかかった奴は1000人は居るね。
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225224
NGNG0226デフォルトの名無しさん
NGNGおそらく無理。
スピーカー自体には再生する能力があるかもしれんが、
iアプリのプログラムから直接スピーカーを駆動する方法はナシ
0227デフォルトの名無しさん
NGNG携帯も発達してきたようなので、この度3Dに手を出そうと思っています。
どこか良いサンプルなどのあるサイトは無いでしょうか?
0228デフォルトの名無しさん
NGNGパネル上にテキストボックスのコンポーネントを追加して、起動中にそのテキストボックス
に入力した文字を変数に入れて別のクラスで表示させたいのですがどうしたらよいでしょうか?
ボタンなどと同様にcomponentActionで制御できないものでしょうか?
0229デフォルトの名無しさん
NGNGD900iでImageStore経由で取得したInputStreamオブジェクトで取得する画像
データがサイズ0となっている。
nullにはなっていないので、何かを返しているとは思うのだが、画像データが
取り込めない状態。
他の端末では問題なく動いているんだけど・・・
0230デフォルトの名無しさん
NGNGえっとそのテキストボックスオブジェクトにさえアクセスできれば、どこからでも
制御できるので、その別のクラスからアクセスできるようにしてあげれば大丈夫。
俺はいつもパネル部品はpublic staticで作ってるので、クラス名経由でアクセス
してるよ。
0231229
NGNGサポートしていないらしい・・・
これでデータ長をプログラム内で0と判定していたようだ。
0232デフォルトの名無しさん
NGNG動作確認実機SH900iでは動くのですが、N900iではエラーが出るのです、
もしN系開発してる人いたらよろしくです。
/**
* 画像をスクラッチパッドよりロードする。
* 引数spnoにスクラッチ番号、indexは読込開始位置。
*/
Image loadImage(int spno,int index){
MediaImage mdi = null;
Image image=null;
try{
mdi = MediaManager.getImage("scratchpad:///"+spno+";pos="+index);
mdi.use();
image=mdi.getImage();
}catch(Exception e){
System.out.println("画像呼び出しエラーloadImage()");
image=Image.createImage(300,480);
}finally{
return image;
}
}
もしもネットからダウンロードしたデータがスクラッチパッドに保存していないのであっても、
返すImageオブジェクトを用意したのですが、「java.lang.NullPointerException 画像呼び出しエラーloadImage()
」で止まってしまうようです。
Image.createImage()の使い方も間違ってるのでしょうか…
0233232
NGNG0234デフォルトの名無しさん
NGNGCLDCのInputStreamのリファレンス見るとmark/resetは「何もしない」のが正常とのこと
0235デフォルトの名無しさん
NGNG300x480が大きいとかいう話じゃない?
0236デフォルトの名無しさん
NGNGiαppli Development Kitで開発してるんだけど、
エミュレータ−上でちゃんと動作するモジュールが
実機上で「ソフトに継続動作できない障害が発生しました」となって
起動直後に落ちるんだが、これについて情報無い?
無いでしょうか。
有ったらいいな。
0237236
NGNG機種はN900i
誰かここの過去ログpart5の132のレスをコピペしてくれ〜。
どうやらそれが俺の望んだ回答らしい。頼む。
0238デフォルトの名無しさん
NGNGN900iでは、Imageオブジェクトのサイズは横縦320ドットまでだ。
GIFデータがもしその制限を越えているなら、
mdi.use(); の時点で、例外が発生し、
そしてcatch節が実行され、
そこの、createImage(300,480) で再度例外が発生。
そしてとまってしまう。
0239227
NGNG0240デフォルトの名無しさん
NGNGいや、基本的に504シリーズとおんなじだから(;´Д`)
>>237
ttp://makimo.to/2ch/pc5_tech/1084/1084246226.html
ほい。
132からリンクされてる115は私の書き込みだw
0241227
NGNG0242236
NGNGすごいありがとうを君に。
でも、原因違ったよ……。
ボクのあぷり、起動で落ちてるから……。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGImageStore経由で取得したInputStreamとあるから
InputStreamのmark/resetは関係ないだろ。
(そもそもInputStreamはabstract)
0245236
NGNG進んだよ!
AnchorButtonを継承してたよ。final classなのに!
恥ずかしい…。とても恥ずかしい…。
何故エミュレータ−で動いてるのか謎だ。
0246232
NGNGうお、そうなのか。ありがとうー。
スクラッチパッドナンバー1つに対して1つの画像(1つのGIF)っぽかったから、一つの画像ファイルにまとめちゃった;
でも、スクラッチパッドの呼び出し引数に
scratchpad:///"+スクラッチパッドNO+";pos="+開始位置"
の後に、読み込む量みたいなのもあったような・・・
0247デフォルトの名無しさん
NGNGあるよ
付けないとN,P900iはメモリ不足になりやすい
開発ガイド嫁
0248デフォルトの名無しさん
NGNGCLDCにも、なかった
ButtunかLabelの色を変える方法を教えてください!
0249前スレの人@多分881
NGNG0250デフォルトの名無しさん
NGNGクラス com.nttdocomo.ui.Component から継承したメソッド
をよく読め
0251前スレの人@多分881
NGNG詠んで寝ます。
続きは明日やろうっと (= ̄∇ ̄=)
0252デフォルトの名無しさん
NGNG合っていたら動作するアプリを作りたいんですけど
どんな感じで攻めてったらいいでしょうか?
0253デフォルトの名無しさん
NGNGspにID+pass書き込んだら?
id+passが書き込まれてなかったら、入力Panelでも出すとかな。
0254デフォルトの名無しさん
NGNG説明不足でしたごめんなさい
サーバーと連携を取ってサーバー上で会員制のログインシステムをつくってるんですけど
それを携帯からもログインできるようにしたいんです。
POSTを使ってできるみたいなんですが
具体的にどうすればいいのかが見当つかなくて
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGiアプリの本とCGIの本読んで勉強汁
0257デフォルトの名無しさん
NGNGOutputから嫁ばいいんじゃないんのか?
0258デフォルトの名無しさん
NGNG文字化けしてしまいます。読み込んだファイルの内容を配列pに格納して
byte[] strResult = p.getBytes("SJIS");
をしてもエラーで動いてくれないんですけど間違ってるでしょうか?
0259デフォルトの名無しさん
NGNGString(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、
指定されたバイト配列を変換することによって新しい String を構築します。
0260デフォルトの名無しさん
NGNGbyte[] p = new byte[(int)httpconnection.getLength()];
で定義した配列に
inputstream.read(p);
で読み込んでるのをテキストボックスに表示してるんですけど
文字化けしてしまうのでどうしたらいいのかわからないんです。
読み込んでるのはテキストファイルです。
0261227
NGNG0262初期不良
NGNG0263デフォルトの名無しさん
NGNGすいませんけど、具体的なやりかたを教えてもらえないでしょうか
0264デフォルトの名無しさん
NGNG素直に本買った方がいいと思うけど。
0266デフォルトの名無しさん
NGNGナウローディングの%を表示したいです。
でもどうすれば良いか解りません(;´Д`)
今は読み込み中の文字表示しかしてないです。
0267デフォルトの名無しさん
NGNG%表示なら割り算する。
0268デフォルトの名無しさん
05/01/17 10:27:41過去ログあされば出てくるよ。根気よく探してみれ。
0269デフォルトの名無しさん
05/01/17 12:18:34ダウンロードできない症状に遭遇したひといますでしょうか?
ダウンロード時ADFを検査するときにADFが間違っているとでて
はねられてしまうような感じです。
0270デフォルトの名無しさん
05/01/17 12:36:05TargetDevice を調べなさい
0271デフォルトの名無しさん
05/01/17 13:05:44LastModified = Wed, 25 Aug 2004 17:11:12
SPsize = 500
AppClass = xxx
UseBrowser = launch
AppTrace = on
AppName = xxx
PackageURL = xxx.jar
AppSize = 18954
こんなかんじで特別変わったことはしてません。
とくにプリミティブな3Dをつかったときに起こるような気がします。
でも505シリーズでは普通にダウンロードできます。
0272デフォルトの名無しさん
05/01/17 13:20:230273デフォルトの名無しさん
05/01/17 13:34:19全機種で調べた?
0275デフォルトの名無しさん
05/01/17 14:14:29もしかして、またアレか
SPsize=409600
0276デフォルトの名無しさん
05/01/17 14:18:07怪しいのはここくらいしか無い
文字コードが変とか、変な文字入れてるとか、長すぎるとか
0277デフォルトの名無しさん
05/01/17 15:00:11そうだな。
とりあえずASCIIだけにして試してみるのがいいかも
0278273
05/01/17 15:02:19もしかしたらそうかも
3DゲームなんでAppNameが「3D○○○○○」(○の所は日本語、全て全角で全体で7文字)
ADFはiappli tool kit 3.0で普通に設定したものです。
とりあえず名前変えてためしてみます。
0279デフォルトの名無しさん
05/01/17 15:18:000280デフォルトの名無しさん
05/01/17 16:12:25iアプリからiアプリを起動したいのですが、どうやればいいのでしょうか?
それとAPIリファレンスを見てApplicationStoreクラスというのがありましたが、それはランチャー起動用と
書いていましたが、これはトラステッドiアプリ用、ということでしょうか?
参考サイトかヒントでもよいのでご教授よろしくお願いいたします。
0281デフォルトの名無しさん
05/01/17 16:28:35IApplication.launch(int target,String[] args)
0282280
05/01/17 16:34:39ありがとうございました!
よくよく見たらAPIリファレンスのApplicationStoreクラスのところに
launchへのリンクがありました…。
もう少し注意深く見るようにします。
0283デフォルトの名無しさん
05/01/17 17:07:37サンプルコード付きで全部出てるから
0284280
05/01/17 19:40:31,>開発ガイドの詳細編
はい、目を通しておきます!
0285デフォルトの名無しさん
05/01/17 23:13:27えっと、iapplitool使ってアプリ作ってるんですけど
wav2mld使って作ったmldが鳴らないんです。
midiから作ったmldは鳴るんですけど。
何か注意点とかあります?
あと、ドコモの携帯を持ってないので実機確認はできないです。
0286285
05/01/17 23:18:58どなたかお助けください。
0287デフォルトの名無しさん
05/01/18 00:22:000288デフォルトの名無しさん
05/01/18 04:18:35鳴りおわり検出してからではセットアップ小節のぶんどうしても無音になるし、
キューポイントとか全く使えないし。
そのくらいの動作はAPIでできるだろうとたかをくくっていたら見つからなくて
ちょっと焦っている。
0289デフォルトの名無しさん
05/01/18 06:23:42ループはメタイベントでやるらしいよ
詳しい事は知らんし、多分仕様は一般には非公開だと思うから諦めろ
ttp://pc5.2ch.net/test/read.cgi/dtm/1042485105/531
>ループさせる時はメタイベント使ったりもしるんだけど、SMAFの場合START
>とENDしか使えんからなあ。まあ、気にしなくて無問題。
>ちなみにドコモ系だとQ=00〜とかL00=〜とか入れたりしてます。
0290デフォルトの名無しさん
05/01/18 10:32:56漏れはAUDIO_COMPLETEイベントが出たらまたplay()する
0291デフォルトの名無しさん
05/01/18 11:19:36少し止まってる気もするが音楽と同期する処理でもない限り平気、気にならない。
んなとこ気にしてたら他のとこも気になって先に進めないし。
あと、JAR自体にMLDを入れてるならMLDの容量限界(10kbだっけ?)まで
内部で複製して長くしておくってのも手。JAR内部なら圧縮でほとんど容量増えないし
スクラッチにZIP圧縮して読み込ますよりも早いし手軽だ。
0292デフォルトの名無しさん
05/01/18 11:52:50録音ってできるのでしょうか?
録音=携帯端末(iアプリ上)での人間の声の録音です。
機種依存が無い事が前提条件ですが、可能でしょうか?
0293デフォルトの名無しさん
05/01/18 11:57:38APIリファレンス10000回読め。
0294デフォルトの名無しさん
05/01/18 13:16:26292じゃ無いけど、リアルタイムに音声を処理する能力は無いのな。
ある一定の周波数だけに感応するアプリとか作れないのな。
0295デフォルトの名無しさん
05/01/18 13:20:09サブマシンでやってみると出来る。
機種依存か?赤外線ポート持ってるPCだと本物のポート叩くから動かないのか?
なんじゃこりゃ。
0296デフォルトの名無しさん
05/01/18 13:50:11>>218-220
0297デフォルトの名無しさん
05/01/18 14:10:54>>295はそれができないって言ってるんじゃないの
本物のポートたたいてるかどうか実機で見てみたら?
0298デフォルトの名無しさん
05/01/18 15:11:26○ IR無しサブマシン上でエミュレータ二つ起動して通信
○ 携帯二台にダウンして通信
デバイス使用不可にしても、irmon切ってもだめだ。
わけわかめ〜。
わけわかめ〜。
0299デフォルトの名無しさん
05/01/18 15:48:26ポート650が既に他で使われてるとか?
0300デフォルトの名無しさん
05/01/18 16:32:190301デフォルトの名無しさん
05/01/18 16:41:120302デフォルトの名無しさん
05/01/18 16:49:070303デフォルトの名無しさん
05/01/18 17:00:14650使うのか。知らんかった。
まあ、netstatでも650は別に使われてないな。
わかんね。降参。
0304デフォルトの名無しさん
05/01/18 20:14:27いまのところ録音はない。
>>300
自前でスクロールバーを実装したのでわ?
0305デフォルトの名無しさん
05/01/18 23:28:32よくわかりました 自力でつけてみます
0306デフォルトの名無しさん
05/01/19 00:33:32さんくす。
やっぱ実機ないと開発きついね。
0307デフォルトの名無しさん
05/01/19 02:12:030308デフォルトの名無しさん
05/01/19 02:53:000309デフォルトの名無しさん
05/01/19 03:56:37アプリで鳴らそうとしているのですがSH901iCで鳴らんと報告を受けました。
何か知っていたら教えてくださいませ。
0310デフォルトの名無しさん
05/01/19 10:00:14互換性はないので、SH901iC用にコンバートしてやる必要がある。
0311デフォルトの名無しさん
05/01/19 10:10:49レス、サンクスです。
wav2mldってまだ対応してないですよね?
SH901iCへの変換ができる変換ソフトで
オススメなものがあれば教えてください
質問連発スマソ
0312bus
05/01/19 19:41:53わかる方がいれば教えてください
0313デフォルトの名無しさん
05/01/19 19:45:51String s = "...some string...";
char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);
0314デフォルトの名無しさん
05/01/20 16:08:24お願いします
0315デフォルトの名無しさん
05/01/20 16:18:24TextBox.getText()してから>>313
0316bus
05/01/21 17:33:39返信ありがとうございます、やったとおりにやったらできました。
おかげさまで助かりました
0317デフォルトの名無しさん
05/01/21 19:11:16どうしたら良いのか教えてください。
0318デフォルトの名無しさん
05/01/21 19:29:12setInputMode()でよいのでわ?
http://www.ep.u-tokai.ac.jp/~nakazato/API/504i/base/jguide504_apiref020517/javadoc/com/nttdocomo/ui/TextBox.html#setInputMode(int)
ただ「数字だけ」「アルファベットだけ」はできるけど、
「数字とアルファベットだけ」は無理っぽい。
0319デフォルトの名無しさん
05/01/21 21:45:220320デフォルトの名無しさん
05/01/21 23:26:02つか、ぐぐればでてくる。
0321デフォルトの名無しさん
05/01/22 00:19:23すいません、誤解を招く書き方でした。
例えば、setInputModeで初期入力モードをTextBox.ALPHAに設定しても
入力中にユーザーが入力モードを変えてしまえば漢字なども入力
できてしまいますよね。それを制限したいのです。
こういうことはできないんでしょうか。
0322デフォルトの名無しさん
05/01/22 00:34:12方法ナシ。
0323デフォルトの名無しさん
05/01/22 00:39:43注意書きとか添えるぐらいでいいんでねぇ。
0324デフォルトの名無しさん
05/01/22 00:54:05あんがと!おかげさまでわかりましたけどいっぱいあるのね・・・orz
0325デフォルトの名無しさん
05/01/22 09:18:01具体的にはキーが効かなかったり、動きが遅かったりします。
ですが、全てのアプリで動きがおかしいのではなく、特定のアプリでだけ起こります。
このような症状になられた方いませんか?
0326デフォルトの名無しさん
05/01/22 10:12:36容量とか処理速度とか問題にならない?
iアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?
0327デフォルトの名無しさん
05/01/22 10:27:32>>323
そうですか・・・。ありがとうございます。
0328デフォルトの名無しさん
05/01/22 12:14:46classファイル1つにつき数百バイトのオーバーヘッドがでるから、サイズの点で不利。
if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
elseが付いていないなら良い仕事だと思っていいよ。付いていた場合は並。
0329デフォルトの名無しさん
05/01/22 14:35:06嫌な世界だ。
0330デフォルトの名無しさん
05/01/22 16:46:58Javaからかけ離れた実装にすると容量を節約できるのと、
クラスライブラリがお世辞にもOOを考えて作られていなかった、
という事情からか、iアプリのコードにはヘンなものが多いです。
容量を重視しないなら、Javaっぽく書いた方がいいと思うけどね。
0331デフォルトの名無しさん
05/01/23 01:50:49昔と最近で、クラスライブラリ設計方針が変わってきたような気がする。
0332デフォルトの名無しさん
05/01/24 01:01:01表示するx座標を文字幅分進めたいけれど、任意のcharが1バイト文字か2バイト文字か調べるのはどうすればいいですか?
java.lang.Character.UnicodeBlock.of()が使えないから手詰まりになってしまいました。
出力は折り返し部分を省くと
char[] content;
//contentにspから文字を入れる
for(int i = 0; i < content.length;i++){
//折り返し処理をする
g.drawChars(content, x, y, i, 1);
x += hoge <---文字の幅を入れたい
}
といったコードになります。Font#stringWidth()ってのが使えそうなのですが、いかんせん引数がString…
スマートな解決方法ありませんか?
0333デフォルトの名無しさん
05/01/24 02:13:58文字列が改行部分までしか書き込まれません
old_fileにStringの文字列が格納されていて、
hc = (HttpConnection)Connector.open(s_URL + "k_up.cgi",Connector.READ_WRITE);
os = hc.openOutputStream();
osr = new OutputStreamWriter(os);
osr.write(old_file);
でcgiにアクセスして
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'};
open(FILE,">$filename");
print FILE $buffer
で書き出しているんですがどうすれば改行以降の文章も書き込まれるでしょうか?
0334デフォルトの名無しさん
05/01/24 02:51:50半角全角は気にせず、このどっちかを使って処理する
int getLineBreak(java.lang.String str, int off, int len, int width)
指定した文字列の改行位置を取得します。
int stringWidth(java.lang.String str)
指定した文字列の幅を取得します。
>>333
old_fileの中身は正しいのか?
よく知らんが、perlがバイナリモードじゃなくてテキストモードになってるとか
0335332
05/01/24 04:24:47ありがとうございます。実現できました。
以下駄コード
char c = content[i];
if (x + f.stringWidth(String.valueOf(c)) > Display.getWidth()) {//改行処理
x = 0;
y += f.getHeight() + 2;
}
g.drawChars(content, x, y, i, 1);
x += f.stringWidth(String.valueOf(c));
0336デフォルトの名無しさん
05/01/24 05:01:58perlって、直にprintしたら改行までしか出力されないんじゃなかった?
openしてから、
while(<ファイルハンドル>){print;}
0337デフォルトの名無しさん
05/01/24 11:08:37perlのバイナリモードは改行コードの変換するかどうかだけで、
行単位で出力されるということには関係ない。
>>336
スカラー変数に改行がいくつ入ってても全部出力される。
ふつうはそんなふうなコーディングか、
入力セパレータを解除して一気に読み込むかどっちかかな。
0338bus
05/01/25 17:43:27char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);
このやり方でStringの文字をChar配列に変換したのですが、日本語で実行
するとjava.lang.ArrayIndexOutOFBoundsExceptionてゆうエラーがでてうまく行きません、
このやり方では、日本語は使えないのでしょうか?
0339デフォルトの名無しさん
05/01/25 17:49:26スレ違いの質問。
0340デフォルトの名無しさん
05/01/25 19:17:33【初心者】Java質問・相談スレッド60【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1105691367/
0341デフォルトの名無しさん
05/01/26 01:23:57ありがとうございました
なんか結局エミュでは出来なかったのに
実機では改行以降も書き込んでくれました
エミュと実機ではそんなに違うものなんでしょうか
ってか、CGIの問題だと思ってたのに・・・謎です
0342デフォルトの名無しさん
05/01/26 03:03:43そんな実装依存なコードで平気なのか!?
気持ち悪くない?
0343デフォルトの名無しさん
05/01/26 03:26:550344デフォルトの名無しさん
05/01/26 11:34:42もしくは、ほかの方法で表示することは可能?
0345デフォルトの名無しさん
05/01/26 13:28:14グラフィック文字ってなに?
0346デフォルトの名無しさん
05/01/26 13:36:540347デフォルトの名無しさん
05/01/26 13:42:560348デフォルトの名無しさん
05/01/26 15:39:180349デフォルトの名無しさん
05/01/26 15:48:35play1 = new TextBox("", 4, 1, TextBox.NUMBER);
add(play1);
こういう風にPanelにのっけたTextBoxを
componentActionの中で
System.out.println(play1.getXText());
で出して確認したいのですが、出来ません、nullが帰ってきます
そして入力が終わったらTextBoxの中身は演算にだけつかって
中身を消したいので
play1.setText("");
としているのですが、これをするとprintlnが無限にnullを返してきます。。。
0350デフォルトの名無しさん
05/01/26 16:16:42これ参考にしな
http://saru.or.tp/hp/doja/doja_api_drawemoticon.htm
0351デフォルトの名無しさん
05/01/26 17:35:45APIリファレンス嫁
TextBoxに入っているのがXStringではなくStringだったら
getXText()はnullを返すように決まっている
0352デフォルトの名無しさん
05/01/26 18:02:07X...X....が。。。。。
0353デフォルトの名無しさん
05/01/26 20:23:58ずいぶん面倒なやり方が紹介されてるな。
g.drawString("\uE704", 0, 60);
とかの方が楽だと思う。
0354質問です!
05/01/26 20:38:15携帯用のJAVAアプリでボイスチャットを作成することって
原理上可能なことでしょうか?もし、そうなったら電話使わず
アプリを通してパケホとかで声のデータでやりとりできますよね?
せめて電話みたいなリアルタイムに近い快適さまでいかなくても、
5秒に1回ほど更新してサーバーに相手から来ている声のデータ拾いにいって
再生してってかんじで、トランシーバーみたいなかんじで
声のデーターのやりとりをサーバー経由で出来ないものでしょうか?
そういうアプリって作れます?
0355デフォルトの名無しさん
05/01/26 21:46:15外字をインスコして直接絵文字を書くのが一番楽で間違いも無いよ
>>354
無理&マルチはキエロ
0356デフォルトの名無しさん
05/01/27 00:50:530357デフォルトの名無しさん
05/01/27 01:19:430358デフォルトの名無しさん
05/01/28 00:46:010359デフォルトの名無しさん
05/01/28 00:47:530360デフォルトの名無しさん
05/01/28 00:57:35MApplicationクラスにそのようなものがあります。
http://www.itmedia.co.jp/mobile/0208/23/n_sikoku2_2.html
0361デフォルトの名無しさん
05/01/28 01:58:30APIリファレンスに「折りたたみ型あるいはフリップ型の端末の
場合にのみ」と書いてあるよ。
つーかいい加減リファレンス読まずに質問するのやめてくれ。
0362デフォルトの名無しさん
05/01/28 02:03:27ありがとうございます。APIにご指摘の内容を確認しました。
次回より、よくよみます。
0363デフォルトの名無しさん
05/01/28 10:27:09SO505iとかが、閉じていても画面が見えるので面倒なんだが!
0364デフォルトの名無しさん
05/01/28 23:31:340365デフォルトの名無しさん
05/01/29 02:13:58携帯が噛むアプリとか作れっぞ
0366デフォルトの名無しさん
05/01/29 11:34:34開閉開閉を繰り返して待ち受け画像のセンベイが砕けていく
っていうくぅーだらないストレス発散アプリなら作れるかな
0367デフォルトの名無しさん
05/01/29 11:55:260368デフォルトの名無しさん
05/01/29 12:18:35さっさとリリースしる!
・・・おながいします。
0369デフォルトの名無しさん
05/01/29 17:05:270370デフォルトの名無しさん
05/01/29 22:25:180371デフォルトの名無しさん
05/01/29 23:09:410372デフォルトの名無しさん
05/01/29 23:38:45サーバー側のプログラムはservletを使うしかないのでしょうか?
0373デフォルトの名無しさん
05/01/30 00:19:200374デフォルトの名無しさん
05/01/30 00:34:17返答ありがとうございます。
そんなにも精度が悪かったとは知りませんでした・・。
アクション系のゲームを作っているのですが
スリープなしだと速すぎてスリープをすると遅すぎる場合どうすればいいのでしょうか?
やはり移動距離の調節で対応するしかないんですか?
0375デフォルトの名無しさん
05/01/30 01:15:420376デフォルトの名無しさん
05/01/30 01:30:180377デフォルトの名無しさん
05/01/30 06:31:06着メロとして再生可能なMLDファイルがアプリ上で再生できないことはあるでしょうか?
いくつかあるMLDファイルのうちの何個かが鳴らないのですが
自分のところで作成したMLDファイルなので作成環境等はわかりません
同じ状況になったことのある方はいないでしょうか
0378デフォルトの名無しさん
05/01/30 07:03:08MLDには機種依存があるので(とくにPCM音声)
機種が違うと鳴らないことがある。
>自分のところで作成したMLDファイルなので作成環境等はわかりません
自分で作ったファイルなのに、
どうして作成環境がわからないの?
0379デフォルトの名無しさん
05/01/30 13:06:16Threadは一つしか作ってないんですけどyieldでスリープのような効果を期待できるのでしょうか?
>>376
秒間30フレーム程度で動かしたいのですが
スリープなしだと48フレームでスリープをかけると21フレームまで落ちます。
0380デフォルトの名無しさん
05/01/30 13:40:37yieldはSleepじゃない。例えばwhile() yield(); だとsleep()と違って
CPU利用率が100%になる。
フレーム数カウントして、数フレームに1度程度の割合でsleepするしか
ないんじゃないか?
0381デフォルトの名無しさん
05/01/30 13:59:14yieldだと100%になるということはバッテリのことを考えるとあまり使いたくないですね
数フレームに一度sleepをかけるとそのフレームだけコマ落ちのようになるような気がするんですが・・
0382デフォルトの名無しさん
05/01/30 14:23:34バッテリを犠牲にして空ループで待つしかない。
0383377
05/01/30 15:58:35返答ありがとうございます
×自分のところで作成したMLDファイルなので作成環境等はわかりません
○自分のところで作成したMLDファイルではないので作成環境等はわかりません
のまちがいでした
現象が発生する機種はN900iで着メロとしての再生を確認したのも同じN900iです
0384デフォルトの名無しさん
05/01/30 20:03:510385デフォルトの名無しさん
05/01/30 21:15:13FOMAでアプリ以外で時間をリアルタイムで表示させる方法ってありますか?
ヤフオクの詳細な残り時間を表示させるような感じです。
0386デフォルトの名無しさん
05/01/30 21:28:480387デフォルトの名無しさん
05/01/30 23:17:37FLASH使えばできそうな気がするがスレ違いだな
0388375
05/01/31 00:37:17その場合はyield入れなきゃだめだわな。
0389デフォルトの名無しさん
05/01/31 05:17:490390デフォルトの名無しさん
05/01/31 11:06:520391デフォルトの名無しさん
05/01/31 11:09:13ポート使用して再生してる場合
きちんとリソースの配置まで考えて作られたmld以外は鳴らない
ポート使用しない設定で再生すればその鳴らないデータも鳴るはず
ただし複数同時再生はできなくなる
複数同時再生するためのデータを作る場合はmldをちゃんと理解してから作ること
0392デフォルトの名無しさん
05/01/31 15:50:02機種によってはMLDのサイズがでかすぎる場合ならないことがある。
機種によってはプログラムのその音をプレイする前に
ストップを呼び出してるのが近い場合ならないこともある
出てない情報で考えうる残りの可能性。
0393366
05/02/01 01:37:17待ち受け煎餅(505i以降)
ttp://senbei.kt.fc2.com/i/
予想通り「かなり」くだらないorz
スレ違いなのでレス不要。
0394デフォルトの名無しさん
05/02/01 09:19:12乙。割れ方が気に入った
0395デフォルトの名無しさん
05/02/01 10:08:21GJ!
0396デフォルトの名無しさん
05/02/01 11:50:39開閉を早くやると、開閉イベントが飛んでこないアホ機種がありますから!残念!
0397デフォルトの名無しさん
05/02/01 11:53:060398デフォルトの名無しさん
05/02/01 11:57:07非矩形転送ってないですよね。
0399デフォルトの名無しさん
05/02/01 13:02:35すまんが、その情報を詳しく教えて欲しい。
今、フリップ開閉を繰り返して行うと、閉じた時のイベントが発生しないバグがあって困ってます。
もしかして、そのイベント飛ばされる機種ってN系ですか?
0400デフォルトの名無しさん
05/02/01 14:58:19N900iだけど,500�_秒くらい置かないと砕けない
まあ,よく噛めってことか
0401デフォルトの名無しさん
05/02/01 15:32:510402デフォルトの名無しさん
05/02/01 15:41:260403デフォルトの名無しさん
05/02/01 22:29:30>>398
多分割れたせんべいパーツを用意してくっつけてるだけだと思ふ。
0404デフォルトの名無しさん
05/02/02 01:00:18PanelとCanvasを同時に表示する事は出来るのでしょうか?
もしくは上半分をCanvas、下半分をPanelという使い方はできるのでしょうか?
0405デフォルトの名無しさん
05/02/02 01:09:58ムリ
0406デフォルトの名無しさん
05/02/02 01:15:29即答ありがとうございます。無理ですか・・・orz
0407デフォルトの名無しさん
05/02/02 15:03:270408デフォルトの名無しさん
05/02/02 15:19:550409デフォルトの名無しさん
05/02/02 15:23:260410デフォルトの名無しさん
05/02/02 15:41:16iアプリじゃなくてJavaの質問になるので
スレ違い。
0411デフォルトの名無しさん
05/02/02 17:04:47APIリファ(ry
0412デフォルトの名無しさん
05/02/02 18:28:33まぁスキルアップのためにメソッド作っとけ。
0413デフォルトの名無しさん
05/02/02 19:58:26待受けアプリを作ってるんですが、この「非活性」の状態でも拾える
イベントってありますか?
0414デフォルトの名無しさん
05/02/02 20:33:43'`,、 '`,、 '`,、('▽`) '`,、 '`,、 '`,、
0415デフォルトの名無しさん
05/02/02 21:37:08質問の意味が分からないのだが。
非活性中に何をしたいの?
キーイベントは無理でも
タイマーイベントならハンドルできる気がするけど。
0416デフォルトの名無しさん
05/02/03 10:44:05キー入力ができないだけで、非活性状態は活性化状態と変わらん。
まぁPhone.callを非活性状態では使えないとか、そういう制限ならあるが。
0417デフォルトの名無しさん
05/02/03 12:04:11ありがとうございます。
「キー入力ができないだけで、」ということは、キー入力によって
非活性→活性 にすることはできないんですね。
「活性化ボタン(?)」を押すしか、非活性→活性 はダメという
理解でよろしいでしょうか。
0418デフォルトの名無しさん
05/02/03 12:16:47そんなことまでいちいち確認求めんでも
開発ガイド詳細編を「非活性」で検索して
引っかかったとこ読んで自分で判断しなって
0419デフォルトの名無しさん
05/02/03 12:18:260420デフォルトの名無しさん
05/02/03 12:49:12>>419
DOCOMO公認で、手続きをすればそれようのIDが発行されて、できる。
0421デフォルトの名無しさん
05/02/03 13:21:50jar圧縮されたバイナリファイルをスクラッチパッドから読み込んで解凍して使用したいのですが
スクラッチパッド上にはすでに test.bin というファイルがjar圧縮されて配置されてあるとした場合、
InputStream aStream = Connector.openInputStream( スクラッチパッドアドレス+length );
JarInflater aJarFile = new JarInflater( aStream );
aStream.close();
InputStream bStream = aJarFile.getInputStream( "test.bin" );
aDataStreams = new DataInputStream( bStream );
〜ここでデータを読み込み〜
/*以下、各種終了処理*/
aDataStream.close();
aDataStream = null;
aJarFile = null;
bStream.close();
bStream = null;
aStream = null;
という感じでやっているのですが、
各種リソースの破棄などについて、上記の手順でよろしいでしょうか。
順番違いや、なにか足りない手順などありますでしょうか
0422デフォルトの名無しさん
05/02/03 13:22:28ありがとうございました
0423デフォルトの名無しさん
05/02/03 13:24:00ありがとうございました
0424デフォルトの名無しさん
05/02/03 13:55:40↓ドコモのドキュメントを100回読め
0425デフォルトの名無しさん
05/02/03 14:11:10そのコードで動いているんだったらいーんじゃないの。
0426デフォルトの名無しさん
05/02/03 14:14:320427デフォルトの名無しさん
05/02/03 14:26:59リアルタイム通信の格闘ゲームって作れるかな?
0428デフォルトの名無しさん
05/02/03 15:06:32iアプリに関してはほぼ不可能。
0429デフォルトの名無しさん
05/02/03 17:35:180430デフォルトの名無しさん
05/02/03 18:38:220431デフォルトの名無しさん
05/02/03 19:01:120432デフォルトの名無しさん
05/02/03 19:08:32i-motionのファイルサイズを150KB以内に収める必要ってあるの?
0433デフォルトの名無しさん
05/02/03 19:56:07DataOutputStreamを使ってスクラッチパッドにデータを保存しているのですが、
一度にクラス単位で保存する技ありませんか?
今は、年齢のデータが沢山あったりすると、
writeInt(age);をループで書き込んでいます。
これだと非常に面倒なので他に技があれば教えてください。
また、読み取りのときもクラス単位でがっつり読み込めると嬉しいです。
0434デフォルトの名無しさん
05/02/03 20:26:33Image.createImage(swid, shei);
java.lang.IllegalArgumentException Invalid width/height
って出ちゃうんですけど原因の分かる人いらっしゃいますか?
0435デフォルトの名無しさん
05/02/03 21:31:05いや、エラーメッセージの通り、Imageの幅と高さが不正なだけだけど・・・。
P900では320を超える値は設定できまへん。
0436デフォルトの名無しさん
05/02/03 21:48:49公式サイトでも無理だぞ
>>433
シリアライズ機能は無いからアキラメレ
0437デフォルトの名無しさん
05/02/03 22:58:05機種:SH900i
現象:メモリーがすこしずつ減って行く
状況
・毎ループgc(何回も)
・MediaImage:unuse、dispose =null
・Image:dispose =null
・jar:dispose =null
・Graphics:dispose =null
など思いつく限り、メモリ解放に関係ありそうなことをしています。
補足:参照している変数がどっかに残っている可能性は大有り
なにか解放されていないようなのですが、こんなものですか?
なにか必要なことをしていないのでしょうか?
思い当たることがあれば、おねがいします
0438デフォルトの名無しさん
05/02/03 22:58:59アプリを使う人に入力してもらえばできるぞ!!
0439デフォルトの名無しさん
05/02/04 00:25:46MediaSoundは使ってないのか?
もしかして、少しづつ減って行くけどある程度減ったらgcがかかって増えるんじゃないの?
0440デフォルトの名無しさん
05/02/04 01:34:20動作中にメモリの確保/解放を繰り返す作りだと、断片化のせいで少しずつ
食いつぶされていくね。
文字列の連結とか、暗に確保されるような処理が入ってない?
0441437
05/02/04 01:41:07どもです。
MediaSoundは使っていますが、使いまわしで破棄対象ではありません。
InputStreamなどio系もclose() =nullしています。
SH900iではVM側が必要だと判断したとき、gcが実行されるということでしょうか?
かなりのデータ量なのでgcがかかった後の状態が、少しずつ減っているように感じます
0442437
05/02/04 01:49:40どもです。
その断片化はgcで解消されないのでしょうか?
文字の連結は若干しているケースもありますが、数KBも消費するほどでは・・・
それとこの文字の連結もgcで解消されないのでしょうか?
?ばかりでもうしわけないです
0443デフォルトの名無しさん
05/02/04 01:51:40信じられないことに、gcはするけどコンパクションしない機種があるのだよ。
0444デフォルトの名無しさん
05/02/04 01:58:19AffineTransのmul()でどうしてもRuntimeExceptionが出てしまいますorz
AffineTrans trans=new AffineTrans(0,0,0,0,0,0,0,0,0,0,0,0);
trans.mul(trans);
試しにこんなソースを実行しましたが、これだけでRuntimeExceptionが出ます。
何か足りないことでもあるんでしょうか?
0445437
05/02/04 02:00:25コンパクション、ググッってきました。
解放じゃなくて、メモリを整理してくれる・・・ということは、
どんどんメモリは無くなっていくばかりですかorz
SH900iなのですが、これがそうなんでしょうか?
900以上でコンパクションしない機種って分かりますか?
もしくは調べ方でもいいのですが・・・お願いします。
0446デフォルトの名無しさん
05/02/04 02:42:37MascotCapsuleのDLLが入ってないからじゃない?
0447デフォルトの名無しさん
05/02/04 04:58:03ちゃんとdispose()しないと駄目だぞ
ネイティブヒープはgcの対象にならないから、わざわざdispose()とかのメソッドがある
ちゃんと使うべし
0448デフォルトの名無しさん
05/02/04 05:00:300449デフォルトの名無しさん
05/02/04 09:31:06使い回してるってことは、最初に全部getSound()しちゃって、それ以降は
行わないようにしてると思うんだが・・・
0450デフォルトの名無しさん
05/02/04 11:40:39公式サイトだろうとそう言う事はできない。
公式アプリだと画面に表示したりすることは出来るが
機能が制限されるためそれを外部へ持ち出す手段がない。
個人的に思いついてないがその機能の抜け目があって
外部へ持ち出す事が可能なアプリを公式でなら可能とか
過去に言ってた人もいるが本当かどうかはわからない。
ちなみに、公式サイトのアプリなど有料サイトを使用して支払い拒否(未払い)した場合
その携帯で契約した各有料サイト運営会社には
使ってる本人の個人情報が流される仕組みにはなってるらしい。
ようは携帯契約時の内容の情報だな。電話や名前や住所などなど。
これは各会社でその個人に対してドコモが回収しなかった金額を個別に請求するために必要となる。
が・・・実際には個別で取り立てるとその手数料だけでマイナスになるので
あまり友好的に活用されていないのが現状ではあるが・・・個人情報が流れるのは気持ち悪いな。
0451デフォルトの名無しさん
05/02/04 11:48:13言いたいことはなんとなく判るが基本的に無い・・と言いつつ自信は無いwwww
でも、自分でデータの持ち方を変えてやるほうが良いと思う。
配列にしてwrite(byte[] b, int off, int len)で書くとか。
余計な事だが年齢をintで書き出すのはどうだろうか・・・。
byteで十分でしょ、無限にスクラッチ使えるわけじゃないし。
0452デフォルトの名無しさん
05/02/04 11:51:37開発情報PDF読むべし。
P900とN900にいたっては、断片化を修復しない。
んー。SHの開発情報PDFには特にそれ関連はないなぁ。
一定以上小さなゴミがたまったら解放とかかもしれない
0453デフォルトの名無しさん
05/02/04 11:52:08DOJAにシリアライズは無い。自力実装しかないです。残念!
0454デフォルトの名無しさん
05/02/04 13:48:15MediaListener のイベントで、着信や強制終了確認でのアプリ中断時に、AUDIO_STOPPED や AUDIO_PAUSED
のイベントって呼び出されますか?
それと、強制終了確認で「いいえ」を選択すると、決定キーが押されたという状態でアプリに戻ってくるんですが、
この状態の回避方法があれば、教えて頂けないでしょうか?
0455デフォルトの名無しさん
05/02/04 18:35:03>イベントって呼び出されますか?
質問が的確じゃない気がする。
理由としては機種依存もあればDoJaのバージョンによってその部分の挙動は違うから。
恐らくサウンドの事だろうけどAudioPresenterを調べて見るといいよ。
完全保障はほぼ無いor機種依存ってのがわかると思う。
でも実際はほぼ呼び出されてると思って良いけど過剰な期待はよした方がいいと思う。
>強制終了確認で「いいえ」を選択すると
>>81
0456デフォルトの名無しさん
05/02/05 00:23:16SHはコンパクションはやってくれてると思うけどなあ。
ところで、
> 解放じゃなくて、メモリを整理してくれる・・・ということは、
> どんどんメモリは無くなっていくばかりですかorz
なんかものすごい誤解してる気がするんだが、
コンパクションとGCは両方やるんですよ。
どういうイメージか知りたいなら「コピーGC」でぐぐれ。
GC+コンパクションの基本だ。
0457デフォルトの名無しさん
05/02/05 14:30:20どういった場所を疑った方がいいんでしょうか?
0458デフォルトの名無しさん
05/02/05 14:57:39私の経験では、jam ファイルに誤りがあった。
他は見逃してくれてただけ。
jam ファイルチェッカー欲しいなー。
自分で書いてもミスするから、
自分でチェッカー作ると信用できないし。
0459デフォルトの名無しさん
05/02/05 18:37:00アプリ名、スクラッチパッド、あとは対象機種名のあたりぐらいか
とくにアプリ名が16バイトオーバーしてたとかよくあった(それでも動く機種あるからなあ)
0460437
05/02/05 18:48:20>>449の様にしています。
追加補足なのですが、メソッド内で取得したGraphicsオブジェクトは、
disposeしていません。jarなども含めdisposeがあるオブジェクトは、
メソッド内だけのローカルで使用している場合でも、disposeは必要でしょうか?
既出な質問のような気がしますが、お願いします。
と書いていますがアク規制の間に試してみまして、変わりなしです。
>>452 ありがとうございます。
>>456 ありがとうございます。誤解してますし日本語もおかしいですね。orz
「gc=解放+コンパクション」 と 「gc=解放のみ」 の場合があり、
コンパクションを行われない場合、断片化が発生する。
断片化すると、残メモリはあっても大きい画像などを展開しようとすると
アウトオブメモリーが発生する。という感じでよろしいでしょうか?
0461デフォルトの名無しさん
05/02/05 21:14:08機種によるけどdisposeは必要
理由は>>447
disposeしても駄目って事は、そういう端末だと思って諦めるしかないって事だろう
何時間動かすと落ちるか調べたら?
0462デフォルトの名無しさん
05/02/06 00:30:50返答ありがとうございます。
指摘された通りjamファイルを疑いアプリ名、サイズ、スクラッチパッド等を
ひとつひとつ変更しては試してみたもののどうしてもうまくいきません。
PやNではダウンロード、動作するのですが、SHだけはダウンロードで失敗します。
SHだけに起こる機種依存のようなものがあるのでしょうか?
0463デフォルトの名無しさん
05/02/06 00:58:38アプリ名に2バイト文字を使わないようにすると動くかも
0464デフォルトの名無しさん
05/02/06 02:56:08それと同じ症状になったことあります。
なぜかSH900iだけダメ。
ADFは(AppSizeとLastModified以外)変えていないのに、バージョンアップDLできなくなったり…
DoJa-4.0用のエミュレーターではADFチェックという項目があるんですが、それももちろん正常。
とりあえずうちの方ではProfileVerとかConfigurationVerとかの必須じゃない項目を削りまくったらSHでもDLできるようになったと報告を受けました。
あと、ADFの記述がPackageURL以外全く同じ505用はDLできたとも報告を受けたんですが…
全然原因がわかりませんでした(´・ω・`)
0465デフォルトの名無しさん
05/02/06 03:21:23とりあえず解除できるところを一通り解除。
Launch なんちゃらとか。
SH900i は確かにチェック厳しかった気がする。
0466デフォルトの名無しさん
05/02/06 03:57:45AppNameは何て書いてる?
SH900は>>463が言うように特定の漢字使ってると引っかかるよ。
この件はこのスレでも過去に話題になった。Part5の>470-550あたり。
0467デフォルトの名無しさん
05/02/06 06:21:580x5C(\)の入った文字が関係あるらしいよ
"圭構蚕"でぐぐってみてw
--------------
ゴルフスコア表×
ゴルフスコア表です×
ゴルフスコア紙○
ゴルフ表スコア○
ゴルフスコア表○
ごるふすこあ表○
表ゴルフスコア○
ゴルフスコアひょう○
ゴルフスコア○
ゴルフ表○
ゴルフhyou○
ゴルフスコアhyou○
時刻表○
ウ表○
スコア表○
ゴルフスコア表×
0468462
05/02/06 20:07:48SHはjamファイルの読み込みに癖があるんですかね。
0469デフォルトの名無しさん
05/02/06 20:40:39参考までに今まで何て書いてあったのか教えてもらえませんか
DoJa-3.0とか書くとこでしょ?
0470デフォルトの名無しさん
05/02/06 21:21:26そのままDoja-3.0って書いてましたよ。
他のアプリでは同様の記述でも問題なかったので何かの組み合わせで起こるのかもしれませんね。
0471デフォルトの名無しさん
05/02/06 21:42:570472456
05/02/06 22:11:36> コンパクションを行われない場合、断片化が発生する。
> 断片化すると、残メモリはあっても大きい画像などを展開しようとすると
> アウトオブメモリーが発生する。という感じでよろしいでしょうか?
その通り。
0473437
05/02/06 23:35:57場合によってデータ量が違うので、落ちやすいところが出てしまうんですよね。
テストでは2時間は大丈夫なんですが、たまに持たないときがあるようで・・・。
>>472 どもです。
さらに気になる点は、finalって普通に使用していますか?
いや、これを消してもメモリ減少に対する効果はほとんど無かったんですけどね。
危険だという話を聞いたもので、どういう危険があるのかと。
ちなみに、メソッド内(ローカル変数?)でfinalつかってました
0474456
05/02/06 23:43:59言ってる意味がわからんぞ。そんな話は聞いたことがない。
一般的には、finalがあれば、JVMがインライン展開などの最適化を実行時にしてくれると思うが、
iアプリにおいては、static final定数を使えば定数の埋め込みがコンパイル時に行われること位しか効率上のメリットはないかもね。
0475デフォルトの名無しさん
05/02/07 00:03:09それ、DoJa-3.0 って書いたら動かない?
0476デフォルトの名無しさん
05/02/07 00:07:09サイズは3割減ったけど起動が速くなった気がしないしサイズが倍くらいあるアプリと同じくらいの起動速度…
起動速度を上げるのになにかtipsとかありましたら教えてください
0477デフォルトの名無しさん
05/02/07 02:27:26何を指して起動速度と言ってるのかわからないが、何にしても遅いものを速くするには
重い処理をはずすか、冗長性を減らすか、処理数自体を減らすか、とかだぞ。
0478デフォルトの名無しさん
05/02/07 04:19:28ガセネタ
むしろ積極的に使え
>>476
起動時間ってJavaのロゴが出てる時間?
巨大なメソッドがあるとベリファイが遅い気がしないでもない
0479デフォルトの名無しさん
05/02/07 08:10:20なんのためのpreverify.exeなのかと(ry
0480デフォルトの名無しさん
05/02/07 09:23:21勉強汁!
ttp://www.netgene.co.jp/java/docs/javaPressVol23.html
>preverifyは,本質的には本番のベリファイ以前に行われる単なる前処理に過ぎず(注8),
>ベリファイの本体は2パス目のon-device verifyです
0481454
05/02/07 11:14:49回答ありがとうございます。
>恐らくサウンドの事だろうけどAudioPresenterを調べて見るといいよ。
>完全保障はほぼ無いor機種依存ってのがわかると思う。
そうです、AudioPresenter と書くべきでしたな。つうか、MediaListener#mediaAction() と書くべきだったかも。
保証出来ない or 機種依存ですか…。すると、リスナーのメソッドと復帰処理の2ヵ所でサウンド再生再開処理を
入れた方がよさそうだね。
>>強制終了確認で「いいえ」を選択すると
>>81
あら、このスレの最初にあったんですね。
確かめずに質問して、申し訳ない。
0482433
05/02/07 11:53:49スクラッチパッドが激しく使いにくく、書籍やwebを見ても、
非常に面倒な事をやっていたので、
まさか、こんな方法で保存しないだろうと思っていたのですが、
これしかないとは・・・かなり地道ですね。
Doja開発者のみなさんお疲れ様です。。。
0483476
05/02/07 14:48:52です。
当然ファイルサイズが小さいほうがロードの時間も短縮されますよね?
そのファイルサイズを小さくするためのtipsみたいなのがあればご教授ください
今のとこ知っているのは
・else使わないでifでつなぐ
・switchよりifのほうが速い
・定数は直で打つ
ってのは分かりました。まだ良く分かってないのは
・文字列の外部ファイル化
・forは逆に回す???
ほかにも何かありますでしょうか?
あと
eclipseプラグインでビルド->java Blenderで圧縮したjarファイルサイズ < DoJa 開発キットでビルドしたサイズ
なんですが、どちらが良いのでしょう?
過去スレdat落ちして読めないのがあるので分からないことだらけです・・・
0484デフォルトの名無しさん
05/02/07 15:52:45static final で埋め込みはしてくれないと思うぞ。
だからみんなプリプロセッサ使ってるわけで。
0485デフォルトの名無しさん
05/02/07 15:54:14JAVAのロゴが出てるのは、VMを初期化している時間だから、がんばってもあまり短くはならんと思うぞ
0486デフォルトの名無しさん
05/02/07 20:57:29ファイルサイズを小さくするには、クラスを極力作らないことかなー。
jarのサイズについては、実機で動くんだったらサイズが小さいに越したことは
ないだろー。
0487デフォルトの名無しさん
05/02/07 21:43:490488デフォルトの名無しさん
05/02/07 22:36:37ことだと思うけど、インライン展開するぞ。言語仕様のクラスファイルの
バイナリ互換性のとこよんでごらん。
0489デフォルトの名無しさん
05/02/07 22:55:51つ[jarg+javap]
16bit 未満くらいなら埋め込んでくれているように見える。
jarg 前はシラネ
0490474
05/02/07 23:54:24そういやオブジェクトもstatic finalにできるし、そっちはインライン展開なんてされないな。
すっかり忘れてたw
0491474
05/02/08 00:00:04static final定数を宣言すると宣言するのにある一定のバイト数が必要だから。
その定数を使う側にとっては、定数を参照するのと、即値を書くのはコスト的に変化はない。
だから、DoJaのAPIリファレンスに書かれてるstatic final定数は、
わざわざ即値で書いてもサイズ減少には全く貢献しない。
自作クラスのstatic final定数の宣言を消した場合にのみサイズ減少に貢献する。
0492デフォルトの名無しさん
05/02/08 02:58:190493デフォルトの名無しさん
05/02/08 04:24:40N503iやN504iでは動かなかった記憶があるので。
0494デフォルトの名無しさん
05/02/08 06:11:51昔のNでもクラス2個までなら大丈夫だった
505以降はアーカイブするファイルがそれなりの数あっても大丈夫っぽい
0495デフォルトの名無しさん
05/02/08 13:44:32ダウンロードしたアプリを起動させたいんですが、
あれはどうやっているんでしょうか?
ガイドの即起動と、ブラウザから起動ではなく、
ダウンロード後に「アプリを起動しますか?」というメッセージを出して
起動する方法です。
ご存知の方宜しくお願いいたします。
0496デフォルトの名無しさん
05/02/08 13:57:55質問の意味不明。
自分の買った携帯の説明書を読め、で片付く内容っぽいかな。
エミュの話ならそんなものはない。
0497デフォルトの名無しさん
05/02/08 13:58:54それはお前が汁必要の無いこと
0498495
05/02/08 14:42:19アプリをダウンロードしたらアプリを起動しますか?
って出ると思うんですが、私が作ったアプリをサーバーに上げたところ
ダウンロードして終わってしまいます。
ADFに何か書けば、ダウンロード後に起動確認してくれるみたいなんですが、
ご存知ありませんか?
0499デフォルトの名無しさん
05/02/08 15:25:23携帯しだい。普通は聞かれるが、それを省くようにオプション設定できたと思う。
0500デフォルトの名無しさん
05/02/08 16:17:55使わずにやる方法がわかりません、どなたか教えてください
0501デフォルトの名無しさん
05/02/08 16:30:09ADFにはそういう設定はないと思うよ。
ADF全部を理解してるわけじゃないけど・・・たぶんない。
0502495
05/02/08 16:56:21htmlの記述が悪いのかなと思っていろいろistaとか
試したのですが、やっぱり違うようです。
頼みのADFでも無いようなので、残念っす。
0503デフォルトの名無しさん
05/02/08 17:15:08前にスレ違いって言われなかったかい?
0504デフォルトの名無しさん
05/02/08 17:24:11しかし、(書き込み文字)==(読み込み文字)となりません。
何が問題なのでしょうか。
void check1() {
String inStr = "Hello", outStr;
try {
DataOutputStream dos = Connector.openDataOutputStream("scratchpad:///0;pos=" + SP_DATA_POS);
dos.writeUTF(inStr);
dos.close();
} catch (Exception e) {
}
try {
DataInputStream dis = Connector.openDataInputStream("scratchpad:///0;pos=" + SP_DATA_POS);
outStr = new String(dis.readUTF());
dis.close();
System.out.println(inStr);
System.out.println(outStr);
System.out.println(inStr == outStr);
} catch (Exception e) {
}
}
【結果】Hello Hello false
^^^^^
0505デフォルトの名無しさん
05/02/08 17:36:28SP関係なしにJavaの話だが、Stringは
適当な文字で初期化するのと、バイトから生成で振る舞いが違う(詳しくは調べて)。
== で比較できるのは前者。同じオブジェクトを指しているかって意味。
単に同じ内容の文字か、という意味ならString.equals(str)使え。
その例でいくと 〜println( inStr.equals(outStr) );
0506デフォルトの名無しさん
05/02/08 17:41:27ご指摘のとおりでした。下のコードで、Hello Hello true でした。
ありがとうございます。
System.out.println(inStr);
System.out.println(outStr);
System.out.println(inStr.equals(outStr));
0507デフォルトの名無しさん
05/02/09 06:08:30String a = "hoge";
String b = a;
String c = new String(a);
で、a==bは成立するが、a==cは成立しない。
0508デフォルトの名無しさん
05/02/09 12:06:240509デフォルトの名無しさん
05/02/09 12:32:24iletだilet
0510495
05/02/09 16:11:58iletにしたら、ダウンロード後にいきなりアプリ起動して、
アプリ終了後にアプリを保存しますか?
と聞かれてしまいます(T_T)
やりたい遷移は
ダウンロード→起動しますか?→起動っていう流れなんです。
他の作者さんみるとijamでいけてるみたいなのに...orz
0511デフォルトの名無しさん
05/02/09 16:31:13一つ確認しておきたいんだが、ダウンロードしたアプリは、手動でなら起動できるのか?
つまりダウンロード自体が正常にできてるかどうかってことも疑え。
できてないならアップロード時のミスを確認したりアップロード先のサーバを変えろ。
それも正常だったら、原因はアプリでもjamでもダウンロードページのhtmlでもない
だろうから、後は端末の設定だろ。それでもだめならあきらめろ。
0512デフォルトの名無しさん
05/02/09 21:43:41D506i は、アプリを待ち受けに設定しないときは
即「起動しますか」になった。
待ち受けに設定したらブラウザに戻って
ブラウザを終了させたら待ち受けで起動した。
P900i は、ダウンロード後は「起動しますか」になった。
端末の実装依存だと思ってたけど違うってこと?
0513デフォルトの名無しさん
05/02/10 02:03:53iαppliToolを使って実行していたのですが、メモリのダンプなどが出来ないので
JBuilderの最新版をDLして統合環境で作成しようと
思ったのですが、JBuilder2005の設定方法がわからずに困っています
どなたか簡単にでも良いので教えてもらえないでしょうか?
0514513
05/02/10 02:14:450515デフォルトの名無しさん
05/02/10 04:18:17なのですが、餌を食べる処理で
public void eatEsa(int x, int y){
for (int i = 0 ; i < 3 ; i++){
for (int j = 0 ; j < 3 ; j++){
if (mapdata[y + i][x + j] == 2){
mapdata[y + i][x + j] = 0;
esasu --;
}
}
}
}
のところでなぜ自分の場所から自分の場所+2まで検索しているのかがイマイチわかりません。
餌と餌の間隔が4ドットのようなので、そうなってるのでしょうか?
そこには掲示板がないのでもしわかる方がいらっしゃれば教えてください
0516デフォルトの名無しさん
05/02/10 06:34:03かな?
0517デフォルトの名無しさん
05/02/10 09:30:520518デフォルトの名無しさん
05/02/10 10:23:25メモリのダンプとかをしたい場合って皆さんどのようにしてますか?
VC見たいなデバック機能が欲しいんですが・・・
0519デフォルトの名無しさん
05/02/10 10:36:31ほんとにダンプしたきゃエミュレータのコンソールにprintln
大概はjdb使ってリモートdebugだが
0520デフォルトの名無しさん
05/02/10 10:46:44printlnのみ使って調べる。あとは頭で把握する。
機種依存っぽいバグでたらADFのトレースをオンにして確認。
0521デフォルトの名無しさん
05/02/10 11:31:16大体コレで事足りる
エクリプスもたまに使うけど
0522デフォルトの名無しさん
05/02/12 00:29:580523デフォルトの名無しさん
05/02/12 00:47:18setDisplay(...)で・・・
という意味ではなくて?
0524デフォルトの名無しさん
05/02/12 12:05:14デバッグ用に、おかしな処理が行なわれそうになったときは
RuntimeException(String)でアプリを強制終了させる処理を組み込んでます。
ところが、EclipseのEMUからだと、RuntimeExceptionを生成しても
アプリ終了せずにフリーズします。これって仕様?
0525デフォルトの名無しさん
05/02/12 16:06:280526524
05/02/12 16:35:45プログラムから明示的に生成したRuntimeException以外の例外は
きちんとコンソールに表示されてEMUも強制終了するんですよ。
となると仕様かな。。。
0527デフォルトの名無しさん
05/02/12 18:47:330528デフォルトの名無しさん
05/02/13 13:06:060529デフォルトの名無しさん
05/02/13 14:50:180530デフォルトの名無しさん
05/02/13 15:09:200531デフォルトの名無しさん
05/02/13 17:05:530532デフォルトの名無しさん
05/02/13 20:36:58って無理ですか?
0533デフォルトの名無しさん
05/02/14 00:13:27どなたかお助けください。
自宅サーバ(apache2)でIアプリを公開するとどうしても「ソフトに誤りがあります」
と出てしまいます。
当然、ローカルでエミュレータなんかはちゃんと動作しますし、
ISPのスペースにアップすれば普通にダウンロードできます。
いろいろ試しましたが、ADFファイル、アプリ本体には問題ないようで、
(と、いうかまったく別のADF、本体でも同じ状況が起こるので・・・)
おそらく自分のapacheの設定に問題があると踏んでるんですが。
理由の手がかりでもいいのでよろしくお願いします。
0534デフォルトの名無しさん
05/02/14 00:27:42とりあえずサーバーのレスポンスのステータスを
ISP とサーバの両方で比較してみてはどうか。
HttpConnection.getHeaderFiled() 使って。
0535デフォルトの名無しさん
05/02/14 01:54:25ソフトに誤りがあるって出ることはダウンロードのHTMLまではいれるってことだよね?
じゃ、拡張子jamとjarのMIME設定が入ってないとかじゃない?
0536デフォルトの名無しさん
05/02/14 23:19:34描画するピクセルが色ありの場合と、ヌキ(透明色)の場合で速度変わるんでしょうか。
つまり
同じ面積のgifを1枚描画するとした場合
ヌキ(透明色)の面積が多い絵の方が描画早かったりするのでしょうか。
0537デフォルトの名無しさん
05/02/15 00:45:28実験ヨロシク
0538デフォルトの名無しさん
05/02/15 01:07:430539デフォルトの名無しさん
05/02/15 01:09:020540533
05/02/15 02:05:32レスありがとうございます。
私の説明が下手なせいもあって勘違いされているのかと思います。
通信ができないのではなく、アプリ自体がダウンロードできない状態なのです。
もし、私がとんちんかんなこと言っていたらごめんなさい。
>>535
レスありがとうございます。
jamとjarのMIME設定は私なりにしたつもりだったのですが・・・
と、いうかここが原因であろうといろいろ試してみたんですが。
もし、よければ具体的な設定例を教えていただけませんか。
話が少しズレるんですが。
この「ソフトに誤り」というエラーメッセージは
かなり色々な原因で発生するようなんですが、
もうちょっと原因を細かく表示するメッセージにはできなかったでしょうかね。
せめて、エラーの原因のコードみたいのだしてくれてもいい気がするんですが。
0541デフォルトの名無しさん
05/02/15 02:23:20使ってるAPIによっては勝手サイトからのダウンロードは出来ないようになっている。
(特にメールAPI関連や携帯の個人情報にアクセスするAPI等)
0542デフォルトの名無しさん
05/02/15 07:44:17ドメイン名じゃないと駄目だぞ
0543デフォルトの名無しさん
05/02/15 11:42:21画像の描画速度に関しては思いっきり機種依存。
ので一概に早くなるとかは言えない。
>>538
むしろ504が一番作りやすい。アプリ・スクラッチ容量こそ
505に負けるが4倍の画面面積があるからね505。
GIF使う場合アプリの場合は504の方が楽w
沢山もてるからw
0544デフォルトの名無しさん
05/02/15 12:08:50神:P504i,P504iS
上:901
並:900,504,700,旧FOMA
糞:505
貧:503
変:初期FOMA
0545デフォルトの名無しさん
05/02/15 13:10:29901ってまだ触ったことないんだけど上なの?
0546デフォルトの名無しさん
05/02/15 13:11:23P505だけは並にしてやってくれ。
あと、504でもF504は上にしてやってもいいと思うぞ。
細かすぎか。
0547デフォルトの名無しさん
05/02/15 13:12:020548デフォルトの名無しさん
05/02/15 16:31:51すごく簡単なアプリでも同じ現象が発生する点。
ISPのサーバではダウンロードできる点を考えるとその可能性はないと思います。
>>542
現在はIPでアクセスしています。
同じような情報をどこかでみました。
そこにはADF内にIPアドレスでJARの場所を指定しては駄目と書いてありました。
そこでJAMとJARを同じフォルダにいれて相対アドレスで記載しては見たのですが。
じゃあ、それが原因かもしれませんね。
とりあえず、あとでMyDNSで試してみます。ありがとうございます。
0549デフォルトの名無しさん
05/02/15 17:23:130550デフォルトの名無しさん
05/02/15 18:22:110551デフォルトの名無しさん
05/02/15 19:01:10速度は知らんがそれ以外は「ん・ぱか工房」
0552デフォルトの名無しさん
05/02/15 19:15:05>>2のんぱか氏
>>548
ダウンロード後の話になるからちょっと本題からずれるが…
iアプリコンテンツ開発ガイドのHttpConnectionのところに、
「数値IPアドレスは使えません」と書いてある
他にもいろいろ注意事項が書いてあるから良く読んだ方がいいよ
0553デフォルトの名無しさん
05/02/16 00:23:06ドキュメントは読むようにしていたつもりだったのですが、
足りていなかったのかもしれません。
アドバイスありがとうございました。
0554デフォルトの名無しさん
05/02/16 11:01:560555デフォルトの名無しさん
05/02/16 16:07:43ここみたいにCanvasとPanelを切り替えて使いたいんですけど
一つのファイルの中に3つのクラスを作るのではなく、
クラス毎に別ファイルに保存したいのですがどうすればいいんでしょうか?
0556デフォルトの名無しさん
05/02/16 16:45:51ファイルを作れ。
0557デフォルトの名無しさん
05/02/16 16:46:18それはJavaの記述の仕方の問題だな。>>340へ。
0558デフォルトの名無しさん
05/02/16 21:00:24落ちる所は決まっていて、ある程度進んだところで大きめの画像(8k程度)をSPから読み込もうとすると落ちています。
(試しに4kほどの画像でやっても同様に落ちてしまいました)
落ちる直前のfreeMemory()を正常に動作している時と比較しても大差はありませんでした。
エラーメッセージは
java.lang.OutOfMemoryError
curClass = com/nttdocomo/ui/ScreenUpdater
curMethod = run
アプリの作りは、初回起動時にDATをDLして、SPに保存してから起動させています。
2回目以降の起動では問題なく動作しています。
普段ならばMemoryの空きを増やしたり、画像を小さくしたりすれば解決するのですが、色々と手をつくしても駄目でした。
同じような現象に当たった方や、解決方法を知っている方いましたら、アドバイスお願いします。
ホント困ってますorz
0559デフォルトの名無しさん
05/02/16 21:10:18System.gc();しまくってる?
それでも駄目なら、N505はデータのDL後終了するように作るしかないね
0560デフォルトの名無しさん
05/02/16 21:24:07ファームアップデートしてる?
0561デフォルトの名無しさん
05/02/16 22:00:27N505iは
これが重要ものすごい重要
ところがN900iは
スクラッチパッドにアクセスするときlengthは付けたら逆にダメ
しかしN901iになると今度はまたlength付けろと。
もうアフォかと
0562558
05/02/16 22:46:14length付けてます。
こいつの存在を最近知って助かってます。
>>560
バグ!?
そうだったんですが、明日調べてみます。
>>561
N900iでは逆に駄目なんですか。
それは知りませんでした・・・。
みなさん情報ありがとうございます。
修正してみたらまた報告したいと思います〜。
0563デフォルトの名無しさん
05/02/17 03:23:520564デフォルトの名無しさん
05/02/17 11:09:54なぬ・・・N900i付けて問題ないが・・・偶然なのか。
0565デフォルトの名無しさん
05/02/17 11:32:28ファイルのダウンロードとかってできるの?
0566デフォルトの名無しさん
05/02/17 11:38:51>ファイルのダウンロードとかってできるの?
ってのが何のファイルを挿してるのか判らないが
サーバーにアクセスしてファイルをダウンすることは当然出来る。
結構ある形で初回起動時にファイルをダウンロードするアプリ多いだろ?
あれはあらかじめサーバーにアップしてるデータを携帯にダウンして保存してる。
0567デフォルトの名無しさん
05/02/17 11:48:37ありがとう。
iアプリなんか全然やらないけど、開発してみたいなぁと思った人間なもんで。
じゃあ、ムービーやら画像やらをダウンロードすると、スクラッチパッドに保存されるの?
メモリーカードとかには保存できないの?
0568デフォルトの名無しさん
05/02/17 13:22:19>開発してみたいなぁと思った
じゃ、その程度のことは自分で調べなさい
資料は>>2のリンク先に全部そろってる
0569デフォルトの名無しさん
05/02/17 13:57:37ドキュメント100回読みの刑に処す
0570デフォルトの名無しさん
05/02/17 14:53:25クラス名.javaで三つに分けて保存しています。
クラスの冒頭で
Canvas cv;
cv = new Canvas();
としてボタンが押されたら
Display.setCurrent(cv);
で切り替えようとしてるんですが、実行するとDoJaのエミュが固まってしまいます。
全てのクラスに上記のような内容を書いているのが原因のような気がするんですが
どうすればいいのかまったく検討がつきません。
どなたかお助け下さい。
0571デフォルトの名無しさん
05/02/17 15:03:28なっているようにするにはどうすればよいのでしょうか?
「ドコモ料金案内」みたいなやつです
0572デフォルトの名無しさん
05/02/17 15:41:03頑張って原因を探ってください
>>571
APIリファレンスを良く読んでください
0573558
05/02/17 16:15:33SPからデータを読み込むところで、一カ所length指定を忘れていました。
なんとも単純で恥ずかしいミス。
色々とアドバイスをくださった皆様ありがとう〜〜
0574デフォルトの名無しさん
05/02/17 16:28:12N900iでlength付けてImageのロード、解放を繰り返すとOutOfMemoryが出る事がある
0575デフォルトの名無しさん
05/02/17 16:39:29IApplication(またはMApplication)のコンストラクタの中で
setCurrent(...)しているとか。
start() の中で呼び出してる?
0576デフォルトの名無しさん
05/02/17 16:42:57こっちでも結構やってるんだが落ちたことが無い・・
実験アプリつくってみるしかないか・・・。
0577デフォルトの名無しさん
05/02/17 17:00:00その逆なら経験した
N900iでlength付けないとOutOfMemoryになる
もうワケワカメ
0578デフォルトの名無しさん
05/02/17 17:30:07アプリ内容
1:合計で約10KBの画像を11個スクラッチにダウン
2:スクラッチから11個画像展開
3:11個の画像を総て描画
4:画像破棄
5:2へ戻る
ってのを作ってN900iで動かしてみた。
結果なんだがlengthつけてもつけなくても・・・落ちなかった。
ただいまリアル実行中だが上の処理のループを1000回超えても全然平気だ。
ギリギリのラインまでメモリ使ってなおかつ画像の展開破棄をやらんと実験にならんか・・。
0579デフォルトの名無しさん
05/02/17 18:59:16う〜むなにやら画像のセーブサイズに関連するという話を聞いたこともあるが・・
しかしN900i
Length付けても付けなくてもOutOfMemoryが出る事があるとなると・・
どうしたもんかなぁ
0580デフォルトの名無しさん
05/02/17 22:27:090581デフォルトの名無しさん
05/02/18 02:13:520582デフォルトの名無しさん
05/02/18 10:47:08一般人に配られてるものかどうかは知らんが、Lengthつけたほうが一時メモリー確保量が少ないからそうしてくれと。
アホかと。
0583デフォルトの名無しさん
05/02/18 11:18:260584デフォルトの名無しさん
05/02/18 12:38:21getImage("scratchpad:///0;pos=" + hogehoge + ",length=" + 8000 );
こんなんでいいか?
0585デフォルトの名無しさん
05/02/18 13:27:140586デフォルトの名無しさん
05/02/18 13:49:56あきらかにPのエンジンや、Pのインターフェイスのほうが上だったのに
無理やりNベースで作らされたのが不幸の始まり。
0587デフォルトの名無しさん
05/02/18 15:00:38スクラッチにアクセスするさい>>584のように記述することで
メモリ消費低下やアクセス速度アップ等の恩恵を得れるオプション。
505ではかなり重要でつけていないと不安定になりやすかったりする。
ゲーム開発してる人なら経験あると思うがスクラッチのGIFの展開速度が桁違いに違う。
エミュ上でもはっきりとした速度の違いを体験できる。
つけなかった場合でメモリや画像を大量に使用するアプリを作成した場合
落ちやすくなったり、ギリギリ動いててもなぜかNETアクセス(ランキングとか)
が出来なくなったり、展開に時間かかりすぎてイライラしたりという経験がある。
0589デフォルトの名無しさん
05/02/18 23:54:26キミ詳しいね。
0590デフォルトの名無しさん
05/02/19 02:15:15コンパクション(並べ替え)まではやらないからヒープ領域に巣ができちゃうのが原因ってきいたけど。
スクラッチパッドとか画像展開とか特定のAPIに依存した問題じゃないでしょ。
0591デフォルトの名無しさん
05/02/19 03:18:19対処療法はあるけど、根本的な解決策は無いって事
開 発 者 出 て こ い ! !
0592デフォルトの名無しさん
05/02/19 09:29:540593デフォルトの名無しさん
05/02/19 09:31:020594デフォルトの名無しさん
05/02/19 11:54:41スレッドってインスタンスした物を一回実行してスレッド終了すると
それのインスタンスをもう一度startさせることってできないんですか?
基本中の基本ですんません。
0595デフォルトの名無しさん
05/02/19 13:11:160596デフォルトの名無しさん
05/02/19 13:41:27できない。
0597デフォルトの名無しさん
05/02/19 15:35:18画像とかのアップロードとかってできるの?
0598デフォルトの名無しさん
05/02/19 15:49:30アプリをダウンロードしたサーバにならHTTPでアクセスできる。
なのでアップロードも可能。
(アプリDXならヨソのサーバにもアクセスできる、が、個人では公開不可)
0599デフォルトの名無しさん
05/02/19 15:55:390600デフォルトの名無しさん
05/02/19 15:56:21ありがとうと書き込もうとしたら、これですよ。
0601デフォルトの名無しさん
05/02/19 16:58:00個人では公開不可
ということはどーゆーことですか?個人iアプリだとアップロードできないという意味でしょうか。
0602デフォルトの名無しさん
05/02/19 17:08:310603デフォルトの名無しさん
05/02/19 17:18:47個人でどうやってトラステッドAPID取るんだよ
0604デフォルトの名無しさん
05/02/19 17:24:320605デフォルトの名無しさん
05/02/19 17:40:02良くいるじゃん
間違いを防ぐために確認の意味で言い直すのはいいけどさ
0606デフォルトの名無しさん
05/02/19 17:55:59ボタンを連打するとそのキー情報が遷移先のクラスに有効になってしまっていて
4回連打すると、4回ボタンに対応したアクションをしていまいます
クラスの遷移の時にキーを入力できないようにする処理はどのようにしたらよいのでしょうか
ご教授おねがいします
0607デフォルトの名無しさん
05/02/19 18:17:110608デフォルトの名無しさん
05/02/19 18:22:37このアプリクラスがメチャメチャ多くてですね
そのクラス移動するときにHTTP通信でCGIにアクセスして返り値で
その変わっていくクラスを決めるんですよ
普通にキー情報が受け継がれることは無いだろうと思っていましたら
ばっちりキー情報はどっかにプールされてるみたいなんですね
0609デフォルトの名無しさん
05/02/19 18:25:46>クラス移動
まずこの用語を説明してくれ
0610デフォルトの名無しさん
05/02/19 18:30:27ひょっとして割り込みメソッドに直接起動処理かいる?
割り込みが入ったときはgetKeypadState()なんかでフラグを保存しておいて、
各クラスではこのフラグを参照してキー入力状態を取得すると良いのでは?
0611デフォルトの名無しさん
05/02/19 18:40:06>割り込みメソッドに直接起動処理かいる
まずこの文を日本語にしてくれ
0612デフォルトの名無しさん
05/02/19 18:45:04ああ、できました、、、
ありがとうございます。。。
他の文章読解能力の低い馬鹿は死んでください。。。
0613デフォルトの名無しさん
05/02/19 19:17:22どうせprocessEventの使い方が間違ってたんだろ?
開発ガイドを読めよ
この程度のことなら全部書いてあるからさ
0614デフォルトの名無しさん
05/02/19 21:09:340615デフォルトの名無しさん
05/02/20 00:33:200616デフォルトの名無しさん
05/02/20 11:25:200617デフォルトの名無しさん
05/02/20 15:01:290618デフォルトの名無しさん
05/02/20 16:11:07launchでアクセスする際のアドレスに
「?a=xxx」と追記する以外に方法は無いんでしょうか?
0619デフォルトの名無しさん
05/02/20 16:36:27ん?POSTで渡したいってこと?
俺はCGIに渡したことは無いけど、
サーブレットにPOSTで渡すときはContentTypeに
urlエンコードを指定して渡してやってるよ。
0620デフォルトの名無しさん
05/02/20 17:15:27>>618
他に方法はない
0621デフォルトの名無しさん
05/02/20 17:31:47ContentTypeを使うということはOutputStreamで送るって事ですか?
>>620
アプリからサーバーに変数を送るときに
launchだとアドレスに追加した変数が見えてしまうので
launchを使わない方法が知りたかったんです。
0622デフォルトの名無しさん
05/02/20 18:03:03launchはブラウザを起動するのに使う。
URLを 〜cgi?aaa=123 と指定すれば引数はサーバに伝わる。
このとき引数は、ブラウザ起動の確認ダイアログでユーザーに見える。
引数をユーザーに見せないでサーバに値を渡す/取得することが目的で、
ブラウザは起動しなくていいというなら、GETでもPOSTでも>>621の1つめの方法でいい。
具体的なやり方がわからなければドキュメント、HTTP通信やcgiの本でも読んでみて。
ブラウザを起動してURLで引数を指定しつつも、それをユーザーに見せたくない、
というならあきらめれ。
(参考:
auのブラウザ起動確認ダイアログはcgi以降を意図的に隠してくれるが
DoCoMoはそういう仕様ではない)
0623デフォルトの名無しさん
05/02/20 19:37:340624デフォルトの名無しさん
05/02/20 20:04:45サンプル付きで全部出てる
0625デフォルトの名無しさん
05/02/21 01:53:402.アプリからの通常の通信はURLは割れないのでアプリから予めcgiを叩いて送信しておく。その際「1」を付与する。
3.サーバ上に一時保管しておく。
4.launchには「1」のキーのみ付与する。
5.受取ったCGIはこのキーと「3」の受信内容を付け合せる。
これでどうだ?
0626デフォルトの名無しさん
05/02/21 11:56:01散々言われてるが何をやるかによって手法が異なる。
launchでのアクセスでは総てのURLが表示される為そこを消すことは不可能。
1:ゲームなどのランキング
ゲームなどのランキングをやりたいなら通常の通信(HttpConnectionを使う方法)で
アクセスすれば良いかと。この時はGET方式でも通常内容がばれる事は無い。
その後ブラウザ起動したいのであればlaunchで呼び出せば良い。
2:CGIが返すのがHTMLの場合
思いつく例としては占いかな。Iアプリで色々質問なぞして結果をブラウザで表示する場合とか。
この場合はlaunchによるCGI呼び出しが必要になるが内容がバレるので
暗号化するのがベターだろうね。他の手順としては>>625のような手法になるね。
暗号化よりも難しいとは思うけど。
0627デフォルトの名無しさん
05/02/21 15:04:04色々と方法を教えて頂きなんとかなりそうなので
後は自力で頑張りたいと思います。
0628デフォルトの名無しさん
05/02/21 17:10:070629デフォルトの名無しさん
05/02/21 17:19:27ここによるとDoJa-3.0みたいだよ
0630デフォルトの名無しさん
05/02/21 17:27:470631デフォルトの名無しさん
05/02/21 19:37:250632デフォルトの名無しさん
05/02/22 00:10:360633デフォルトの名無しさん
05/02/22 21:19:19どうせ3Dでも削っただけの4.0なんだろ
0634デフォルトの名無しさん
05/02/22 21:33:18ちゃんと嫁。
基本はアプリサイズ制限+スクラッチパッドサイズ制限。
3Dは一部。
通信できるサイズが一番知りたいんだが・・・。
つか、こういうのやめて欲しかったわ。
分別しづらい。
0635デフォルトの名無しさん
05/02/23 01:44:350636デフォルトの名無しさん
05/02/23 02:59:401つの文字列の読み書きはreadUTFやwriteUTFを使うのは分かりましたが、2つの文字列を読み書きする場合、どのようにすれば良いですか?
今は仕方なく文字列間を&ではさんで読み書きし、splitしています。
0637デフォルトの名無しさん
05/02/23 04:28:59シリアライズ用のクラスを1個こしらえておくと後が楽だよ。
0638デフォルトの名無しさん
05/02/23 04:53:20漢字や半角カナだと3バイト食うから
んで、必然的に>>637のやり方になる
0639デフォルトの名無しさん
05/02/23 12:38:120640デフォルトの名無しさん
05/02/23 12:53:07Canvas#imeOn
Canvas#processIMEEvent
このぐらい自分で調べられないようでは完成は遠いぞ。
0641デフォルトの名無しさん
05/02/23 12:53:09Canvas#imeOn
0642641
05/02/23 12:53:540643デフォルトの名無しさん
05/02/23 22:07:20今作ってるゲームなのですが、セーブデータは異なるデータ型が混在してます。
しかしSPへの書き込みはbyte配列でやってます。
少し前に話題に出てたけど、シリアライズが使えないので難儀中。
(せっかくのJavaなのでビットシフト処理するのはあまり美しくないかなと)
0644デフォルトの名無しさん
05/02/23 22:11:57このスレでも過去に出てるがこちらへドゾー
【初心者】Java質問・相談スレ62【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1108389742/
0645デフォルトの名無しさん
05/02/23 22:35:130646デフォルトの名無しさん
05/02/23 23:03:49ありがとうございいます!なるほどね、自前でシリアライズ実装して構わないわけですか。
ていうかCLDCのAPIに載ってますね…。
>>645
ゲームデータのセーブ・ロード自体が「バイト配列丸ごと」という感じで、
ゲーム中も全てバイト配列で管理されてるんですよ。
結果、>>644のアドバイス参考に、writeIntの内部処理を自前で実装する羽目になったと。
0647デフォルトの名無しさん
05/02/24 03:12:01分かりました
intとString間の変換は、toString・getBytesメソッドを使う、で合ってますか?
0648デフォルトの名無しさん
05/02/24 05:55:00byte[] とStringだ
0649デフォルトの名無しさん
05/02/24 06:38:21なにを言っているのかよく分からないけど、
私の場合は、根がローテクに出来ているためか、
バイトオーダーを勝手に決められるのが気持ち悪いので、
intもStringもビットシフトでbyte配列に落とすけどな。
0650デフォルトの名無しさん
05/02/24 10:22:26で、GIFではビットマップを使う色数に合わせて可変長ビットにしていくんですがそのビット変換がうまくできず、とりあえず1と0の文字列に変換→8個以上たまったらバイトに変換、としています。
でも遅いです。intからきれいに可変長ビットにする方法無いですか?
0651デフォルトの名無しさん
05/02/24 12:03:54intはbyte配列の間違いでしたorz
ビットシフトは<<や>>>とかですよね。どうすればビットシフトでStringやintをbyte配列に変換できますか?
0652デフォルトの名無しさん
05/02/24 13:36:12頭悪いのでGIFをアプリ内でつくるってのは有効性はよくわからないが
仮に画像を作成してスクラッチに保存するなら・・・独自の形式でいいんでない?
わざわざGIFにしなくても・・・って思ったのはGIFがよく理解できてないからだけどwwww
>>651
もはやiアプリに関係ないじゃん・・。
あくまで例・・・言ってる意味はこう言う事?
int a; //何か数値入ってるものとして・・・。
byte b[] = new byte [4];
b[0] = (byte)(a&0xFF);
b[1] = (byte)((a>>8)&0xFF);
b[2] = (byte)((a>>16)&0xFF);
b[3] = (byte)((a>>24)&0xFF);
0653デフォルトの名無しさん
05/02/24 13:39:25せっかく>644が誘導してくれてんだからそっち行けば?
0654デフォルトの名無しさん
05/02/24 14:18:54いずれにしても、このままだとまた以前みたいに
初心者用スレ立てるのどうのでフレームになりかねんので、
質問する前にもう少しよく考えて欲しい気はするが。
0655650
05/02/24 15:48:22お絵かきアプリ内でGIFを生成、通信でサーバーにアップ、待ち受けなりスクリーンセーバーなりにできる。ていうやつが作りたいから有効性はもろありです。
そんなことよりビット変換したintをいかにバイトに詰めていく方法がないか知りたいんです。
0656デフォルトの名無しさん
05/02/24 17:06:53JAVA自体の話題でしょそれ。
0657デフォルトの名無しさん
05/02/24 17:15:25やりたいことは判ったけど、GIF化をアプリでやらなくても良いんじゃね?
お絵かきツールの色数がどれほど持ってるのか知らないけど
256色以下だからGIF使おうって思ってるんだよね?
パレットデータとドットのデータをサーバーに送ってCGI上でGIFにした方が
ライブラリとかもありそうだし楽じゃね?
GIFより大きくなるかもしれないが転送するデータも自己ファイル形式なら多少は減るかと。
実際やってないからあくまで憶測って事で聞いて欲しいが
ダウン時はDoJaのバージョンにもよるがHTTPでアクセスするデータ量が
制限されている。10KBとか20KBとか。大量のデータをダウンする時は
分割してアクセスするように作ってるがアップも同じように分割してやる必要があると思う。
となると、分断したデータをCGIで受け取り1つにくっつける作業をどうせしないとだめそうな気がするし。
可変長ビットってのがわたしゃ判ってないのでビット演算に関しては何も言えん・・。
0658651
05/02/24 17:15:560659デフォルトの名無しさん
05/02/24 19:22:49Cのソースならその辺に転がってるだろ
根性で作れ
0660デフォルトの名無しさん
05/02/24 23:31:420661デフォルトの名無しさん
05/02/25 00:29:48ImageEncoderで一発だ
0662デフォルトの名無しさん
05/02/25 00:38:190663デフォルトの名無しさん
05/02/25 09:55:500664デフォルトの名無しさん
05/02/25 11:21:50多分ないっしょ。
リファレンス読んでる上で画質に関するフラグって非常に少ないし
なんとなくだがJPEG化処理も機種依存な気がしてくる。
カメラ撮影で使う機構をそのまま使ってる感じっぽい印象を受ける。
お絵かきになら劣化しない物がいいんだろうけどね・・・ドット数によるけど。
どっちにしてもGIFだろうがJPEGだろうが通信パケット量が大なのがちとネックだなぁ。
携帯でお絵かきBBSってのも面白そうではあるが^^お絵かきBBSってJAVAだったな。
どっかのお偉いさんが作ってたって印象しか残ってないがw
0665デフォルトの名無しさん
05/02/25 13:05:24その案もらいますた
0666デフォルトの名無しさん
05/02/25 14:55:190667デフォルトの名無しさん
05/02/25 15:03:21常時スクラッチパッドに状態をセーブしとけ。
0668デフォルトの名無しさん
05/02/25 15:34:16ハード的にそんな機能がついてない限りできない。
電池切らすな!常に充電しつつ遊べ!!!
0669デフォルトの名無しさん
05/02/25 15:47:43前スレあたりで、正常終了しないとスクラッチパッドに書き込まれない
機種があるとかいう話があったような…。
0670デフォルトの名無しさん
05/02/25 15:49:23基本は667とおんなじになるんだけど
電池切れ直前、つまりメーターがゼロになった瞬間に
セーブするようにすればいいのでは?
多分その辺で「あと〜秒で電池切れまっせ」みたいなメッセージ出るっしょ?
・・充電し始めたら勝手に再開するように、とまでいうなら無理っぽいけど。
0671デフォルトの名無しさん
05/02/25 15:58:04phonesystemでバッテリ残量見て
ヤバくなったらスクラッチパッドにハイバネーション用ダンプ書いてterminate
アプリのスタート時にハイバネ用ダンプがあるかどうか見て
あったら読み込んでダンプ消して続行
なかったら最初からスタート
って実装しとけ
0672デフォルトの名無しさん
05/02/25 16:07:31Pシリーズとかだな。電源切れるときはどうか判らんが。
>>670
内部電源の状態はそんなに細かく取得できないはず。
消費電力ってあくまで目安だからな・・・ハード的に確実ってのはなさそう。
ほとんどの携帯の電池アイコンは3段階だがフル状態のアイコン
でしか起動しないアプリとかなら出来るがそんなの嬉しくもない。
いつドコでも現在の状態をユーザーが任意に保存できるようにするのが
ベターな設計だろう。
0673デフォルトの名無しさん
05/02/25 16:35:40素直にあきらめとけ。
0674666
05/02/25 17:02:02ちょっと処理が遅くなるけど、常時保存することにしました。
0675デフォルトの名無しさん
05/02/25 17:28:50あんまり頻繁にセーブしたら駄目。
電池食うし、そもそもflashメモリは10万回ぐらい書き換えたら寿命。
0676デフォルトの名無しさん
05/02/25 18:24:34Nとかだと極悪に重いとおもうぞ・・・。
さらにセーブが長い場合そこで電源切られたら・・・でーた飛ぶよ。
0677デフォルトの名無しさん
05/02/25 21:56:12Nで重いのはともかくとして、
プロファイルによっては二行目はプログラムの作りで回避できるよ。
開発ガイドにもあるけど、open()〜close()までの一連の処理は
SQLのbegin〜commitのようにセッションの一時性が確保されてる。
つまり、「全部成功するか」「全部失敗するか」のどちらか。
0678デフォルトの名無しさん
05/02/25 23:55:36一応、携帯のバッテリが切れるときも一通りシャットダウンの処理してるんだろうし。
0679デフォルトの名無しさん
05/02/26 01:08:17また超直訳だねぇ
0680デフォルトの名無しさん
05/02/26 01:27:430681デフォルトの名無しさん
05/02/26 01:33:18が…どこまでちゃんと作られてるのか謎
0682デフォルトの名無しさん
05/02/26 02:33:250683デフォルトの名無しさん
05/02/26 08:47:24とりあえず常時といっても、ゲームだったらターンの切り替わりとかにセーブしておけば
それほど文句もこないだろう。
0684デフォルトの名無しさん
05/02/26 10:47:170685デフォルトの名無しさん
05/02/26 11:37:17そんなことになってたら、画像をDLしてそれをSPにためて読み込むことすらできんぞ。
0686685
05/02/26 11:37:48異常終了の話かと思ったら、closeの話だったのね。
0687デフォルトの名無しさん
05/02/26 12:13:57そこで読み書きされた結果がアプリ正常終了時のみフラッシュメモリとかに
書き戻されるってこと?
0688デフォルトの名無しさん
05/02/26 12:15:10フラッシュメモリの寿命を無駄に消費しないように考えられた
良い方法だと言える
0689デフォルトの名無しさん
05/02/26 12:28:110690デフォルトの名無しさん
05/02/26 13:56:57実際、それを前提にプログラムしちまって良いのか?
なんか機種の実装によって違ってきそうだよね
0691デフォルトの名無しさん
05/02/26 14:17:43ローグライクみたいな死んだら終わりなゲームを作ったら、機種で有利不利生まれる?
0692デフォルトの名無しさん
05/02/26 17:44:04電池抜いた時にスクラッチパッドが巻き戻っちゃう端末ってマジあんの?
>>691の指摘どおりのゲームをつくろうとしたとき困る。
0693デフォルトの名無しさん
05/02/26 21:39:05場合によってはダブルバッファしなくても描画できる箇所があるのに、
なんでこんな実装してるのかなあ?
0694デフォルトの名無しさん
05/02/26 22:31:470695デフォルトの名無しさん
05/02/26 22:33:13あるよ
解決法はあきらめる事w
0696デフォルトの名無しさん
05/02/26 23:33:05scratchpad:///0;pos=1024
などと書きますが、↑の場合どこまで読み込まれるのですか?スクラッチパッド領域の最後までですか?
0697デフォルトの名無しさん
05/02/27 00:16:200698デフォルトの名無しさん
05/02/27 00:44:23質問です。
ドコモのHPで配布しているiアプリEmuのオプションにある、Eclipse2.1.X用Pluginを、
Eclipse3.0で利用中の方いますか?
Yes/Noだけでもよいので、実績報告あればお願いします。
0699デフォルトの名無しさん
05/02/27 03:04:18残念ながら使えないよ。
0700デフォルトの名無しさん
05/02/27 03:04:20画像じゃなければバッファの長さまで。もちろんスクラッチパッドの最後は超えられない。
gifは1画像の長さ分を読んでくれる。
jpgはスクラッチパッドの最後まで読むから後ろの方に配置しろ、
って解説がドキュメントに出てたような。504のころ。今でもそうなのか?
まあjpgは長さ指定するか、その長さ分のバッファを用意して読み込むもんだろうな。
0701デフォルトの名無しさん
05/02/27 03:06:28実装依存だろ
エミュは最後までっぽい
>>698
3.0では使えなかった
0702デフォルトの名無しさん
05/02/27 10:43:45そうなんですか。基本的には最後までなんですね。lengthをつければ読み込むバイト数が指定できるんですね。
ありがとうございました。
>>697
10進数で16桁までならなんとか
0703デフォルトの名無しさん
05/02/27 11:47:51回答ありがとうございます。
私も動かなかったんですが、しょうがないことなのか自分の設定が悪いのか、整理しときたかったんで・・・
701さん、どうもありがとう!!!(*^_^*)
0704デフォルトの名無しさん
05/02/27 12:49:01今配布されてるやつは3.0にノンサポートで対応してる。リリースノート読むよろ。
うちではちゃんと使えてる。デバッガもOK。
まあ、不安なら2.1使っとけ。
0705デフォルトの名無しさん
05/02/27 20:17:34スクラッチパッドからMediaManagerで読み込み,getImageして,drawImage(img, 10, 10);としています
エミュレータ上では10,10に表示されるのですが,N900iやSO505iSでは10,30あたりに表示されてしまいます
画像のサイズは171*31です
どうしてこうなってしまうのでしょうか
0706デフォルトの名無しさん
05/02/27 20:35:47他人のプログラム見てるのか?
ADFにDrawAreaを書いてるとか、そうなるようにプログラムが書かれているか
0707デフォルトの名無しさん
05/02/27 21:30:53失礼しました
0708デフォルトの名無しさん
05/02/27 23:51:020709デフォルトの名無しさん
05/02/28 08:56:29動作している機種の、Dojaバージョンを調べる方法はありませんでしょうか。
あるとすればSystemクラスに実装されていると思うのですが、APIリファレンスにのってないので
(どこ調べていいかも含めて)分からんのです。
よろしくお願いいたします。
0710デフォルトの名無しさん
05/02/28 10:04:03System.getProperty("microedition.platform")とかやって取得
microedition.platform ホストプラットフォームまたはデバイス名
microedition.profiles サポートしているプロファイル名
microedition.configuration サポートしている構成の名前とバージョン
microedition.encoding デフォルトの文字エンコーディング
microedition.profilesはDoCoMoProfile-1.0とかになってるらしい
0711デフォルトの名無しさん
05/02/28 10:09:33X900i
DoCoMoProfile-3.5
CLDC-1.0
SJIS
DoJaのバージョンはSystem.getProperty("microedition.profiles")で判るっぽいな
0712デフォルトの名無しさん
05/02/28 10:58:32ありがとうございます。
その線で実装し、全機種チェックにかけてみます。
結果は近いうちにご報告しますのでお待ちください。
0713デフォルトの名無しさん
05/02/28 11:54:53>>707の「上下に描画領域外」
とは何のことでしょうか。
0714デフォルトの名無しさん
05/02/28 13:12:45機種によっては真っ白でうめてくれやがるので、見た目が悪いことも…。
0715デフォルトの名無しさん
05/02/28 13:55:37g.setColor(好きな色);
g.fillRect(0, 0, g.getWidth(), g.getHeight());
g.setOrijin((g.getWidth-240())/2, (g.getHeight()-240)/2);
g.setClip(240,240);
DrawAreaは逝って善し
0716デフォルトの名無しさん
05/02/28 14:04:38あのな(;´Д`)
そうじゃねーだろ、そうじゃ。
F505iみたいに「アプリの描きこみ権限が無い領域が白くて格好悪い」機種もあるんだよ。
0717デフォルトの名無しさん
05/02/28 14:17:27実例だせば、D505iの場合
ディスプレイサイズ240*320(待ち受け画像とかもこのサイズ)
iアプリ描画可能エリア、パネル・キャンバスともに240*270。
どうあがいても差分の縦50ドットはアプリから操作できんってことさ。
0719715
05/02/28 15:26:52あーそういうことか。そうするとこちらが論点を勘違いしてた。申し訳ない。
その話で行くと、個人的にはSO505iあたりが最悪系だな。
でもそれで行くと>>714の「240*240」はおかしいぞw
0720デフォルトの名無しさん
05/02/28 16:11:07最低保証アプリ領域サイズの240*240を書いたのじゃー。
勘違いさせたならスマヌ。
0722デフォルトの名無しさん
05/02/28 16:29:49ソフトキーとかの互換性でもう無理だと思うが。
0723デフォルトの名無しさん
05/02/28 17:58:44N504で中途半端にデカイためすげー見苦しいことになってる。
あんな機種がもう一度きたらめんどくさくてめんどくさくて。
0724デフォルトの名無しさん
05/02/28 18:32:39待ち受けとかだと240*240は見た目が悪い
あとソフトキーラベルもいらない
必要なら自分で作ればイイだけだし
0725デフォルトの名無しさん
05/02/28 21:45:060726デフォルトの名無しさん
05/03/01 03:20:12どうしても動かなくなってしまいました。
セーブデータの処理を走らせたときに以下のエラーが表示されます。
ScratchPad Save Err.
com.nttdocomo.io.ConnectionException: Scratchpad already opened for output
これの対処をご存知の方、どうか教えていただきたいと思います。
よろしくお願いします。
0727デフォルトの名無しさん
05/03/01 03:28:51対処も何も、エラーメッセージの通り。読めよ。
スクラッチパッドに書き込むときにopenしたOutputStreamのcloseが抜けてるだけ
でしょ?
0728デフォルトの名無しさん
05/03/01 04:59:44すみません、説明が抜けてました。
もともと、スクラッチパッド関係の処理は1つのクラスとして
もっていまして、OutputStream等は必ずそこで行っています。
もともとというのも、505(doja3.0)時代に使用していた
クラスでして、現在FOMA900i系(doja3.5)にて、
同じクラスを使用したところ、エラーが出て書き込めないという
事態に陥りました。
HTTPからのファイルのダウンロード>スクラッチパッドへの格納
は同クラスで動作しており、40以上のファイルを繰り返し処理しても
大丈夫なのです。
で、セーブデータとして、単にバイトデータを読み書きする時点で
ダメになっていて、もしやdoja3.5から何か変わったのかな?
とも思い質問いたしました。
長文、失礼いたしました。
0729デフォルトの名無しさん
05/03/01 05:28:44何が変なのかのヒントはこれだ
Scratchpad already opened for output
0730デフォルトの名無しさん
05/03/01 06:15:21こんな時間にありがとうございます
直りました。
原因はご指摘の通りoutをcloseしてないでした。
いくつかメソッドを用途別に抱えており、文字列の格納の際でした。
in.close() と inc.close() の違い・・・。
(しかし505時代はこれで動いていたのが逆に今疑問でもあります^^;)
ご迷惑おかけしました。
0731デフォルトの名無しさん
05/03/01 08:54:47数十回の累積openに耐える機種もあれば、耐えない機種もある。
基本的に累積openはしてはいけない。
0732デフォルトの名無しさん
05/03/01 10:16:27アプリをばら撒いてたってわけだな。
0733デフォルトの名無しさん
05/03/01 11:46:060734デフォルトの名無しさん
05/03/01 11:53:300735デフォルトの名無しさん
05/03/01 11:55:030736デフォルトの名無しさん
05/03/01 12:36:17open直後にtry {} finally {} でclose()するのが安全なんだけど、
コードの見通し(融通)が悪くなるのとサイズ増加がね。
0737デフォルトの名無しさん
05/03/01 14:39:49encに"EUC-JP","EUC_JP","eucjp","euc-jp","eucjis"等を指定しても
java.io.UnsupportedEncodingException
とでて変換してくれません。
もしかしてCLDCではEUCをサポートしてないんでしょうか?
0738デフォルトの名無しさん
05/03/01 14:53:20んー、文字コードの変換みたいな機能は実装されていなかった気が。
なにしろ「キロバイトJava」なので。
0739デフォルトの名無しさん
05/03/01 16:00:570740デフォルトの名無しさん
05/03/01 18:03:29自力serializeを作ろうかと思うのですが、携帯JAVAってreflectionを使えるのでしょうか?
0741デフォルトの名無しさん
05/03/01 19:59:410742デフォルトの名無しさん
05/03/01 21:30:53確かJAVAヒープしか無理だった
JAVAとネイティブがごっちゃになっている機種もあるけど>NP
0743デフォルトの名無しさん
05/03/01 22:06:34環境:エミュ:Doja-3.0 実機:F505iGPS
InputStream in=null;
in=getClass().getResourceAsStream("/test.txt");
エミュ上だとこれはOK 実機NG
in=getClass().getResourceAsStream("resource:///test.txt");
エミュ上だと
java.lang.SecurityException: Illegal url : resource:///resource:///test.txt
とエラーを返しますが、実記だと動きます。
エミュレータの設定かなんかの気もするのですが、直し方がわかりません。
ご存知の方いたら教えてください・・・
0744デフォルトの名無しさん
05/03/01 23:58:31getResourceAsStreamは、機種によって引数の解釈が違った気がする。
Connector.openInputStream()使った方が確実だよ。
0745デフォルトの名無しさん
05/03/02 00:26:33のアドレス部分を変数に置き換えるにはどうすればいいんですか?
0747デフォルトの名無しさん
05/03/02 01:20:530748デフォルトの名無しさん
05/03/02 01:57:12頼むから。釣りじゃないならまずJavaを勉強して。
0749デフォルトの名無しさん
05/03/02 11:30:34漏れは>>745についてはむしろそんなソースの書き方があったのかと勉強になった藁
0750デフォルトの名無しさん
05/03/02 12:43:33""いらない。
>>747
そう。
0751745
05/03/02 15:19:04で、疑問なんですが、なんで配列型なんですかね?
0752デフォルトの名無しさん
05/03/02 16:12:40>パラメータ:
>target - 起動するアプリケーションの種類を指定します。
>args - 起動するアプリケーションに渡す引数を指定します。
>引数の意味は起動するアプリケーションによって異なります。
「意味はいろいろ」だから可変長なんでしょ。
0753デフォルトの名無しさん
05/03/02 21:25:48>79 のような状態になっているんだが、どうにもバッファが消去できずにいる。
消去方法は、
if (type == Display.RESUME_VM_EVENT) {
do {
Thread.yield();
} while(getKeypadState() > 0);
// こっから入力バッファ
iKeyOn_Next = 0;
iKeyTrg = 0;
iKeyOffTrg = 0;
iKeyOn = 0;
}
な感じのソースを、processEvent に仕込んでいるんだが、どうもうまく動かない。
他にうまい方法はないもんでしょうか?
0754デフォルトの名無しさん
05/03/02 22:16:29while( getKeypadState() ) で
イベントのキューを空にできるんですかね?getKeypadState()は
I/Oを直接読むカンジで、イベントに左右されない気がするんだけど。
たぶんキー判定にprocessEvent()をまったく使っていないんだと思うけど、
Javaの流儀でいうと、イベントをハンドラ以外に解釈させるのはヘンな実装なのですよ。
というわけで、processEvent()でキーイベントを消費してあげれば安定する気が
するけど、もう試した?
0755754
05/03/02 22:20:07if (type == Display.RESUME_VM_EVENT) の中でスレッドを数ミリ秒スリープ
させるだけで、解決できるのかも。
0756753
05/03/02 22:42:45あ、やっぱり getKeypadState() の空回しでは、バッファクリアにはなりませんか…。
ドキュメントにも「キーパッドの状態が戻り値として返されます」って書き方だったから、参照だけしかしない
メソッドでは? とも思っていたんだけどね…。
754 さんの指摘通り、processEvent() でキー操作系を全く使っていない作りになっています
(昔に誰かが作成した方法通りにやっているもので、Javaの基本を抑えているわけではないんですよね…)。
で、本当に基本的な話かもしれませんけど、キーイベントを消費するって、具体的にどのような方法なんです?
if (type == Display.KEY_PRESSED_EVENT) {}
を用意する…、だけでは非常に足りない気がするんで、そこら辺の詳しい情報が載っている場所があれば
教えて下さい。お願いします。
0757754
05/03/02 23:26:52まず>>755を試してみてください。
というのも>>754を書いたあとに、「そもそもキーイベントって発生していな
いんじゃないかな」と思ったんです。
終了画面で「いいえ」を選んだときに、Javaより下のレベルでイベントが
ハンドルされているはずなのと、もし残っていてJavaまで上がってくるなら
仕様としてオカシイ気がします。
getKeypadState() がJavaのイベント機構とぜんぜん関係がないのなら、
「いいえ」を選んで決定キーから指が離れる前に、getKeypadState() さ
れるのが問題になるので、指が離れるまでちょっとウェイトを入れてあげれ
ばいいのかなと。
最後に、キーイベントを消費するっていうのはイベントをハンドルした
ときに(processEvent()内で)キー入力を無視するフラグを立てて、
getKeypadState() を実行しないっていうような意味で書きました。
が、今回のケースではハズレだったみたい。無視してくださいな。
0758デフォルトの名無しさん
05/03/02 23:35:06ちょっと考え方が違う。
processEventは()実行中スレッドとは別に新たなスレッドが新たに立ち上がって動く。
つまり、そこにウエイトを置いても、実行中スレッドの処理には一切影響を及ぼせない。
また、>>754の言うとおり、getKeyPadState()は「コールされた【瞬間】のキー情報」を取得するので
キーバッファ、キーイベントという概念は適用できない。
キーはgetKeyPadState()で拾ってるのかな?
だとしたら、getKeyPadState()を直接参照せず、
一旦グローバル変数に代入してから参照する作りにすればいい。
それで、レジュームが発生したらその変数をクリアすると。
0759753=756
05/03/02 23:37:06では、まず sleep() で数ミリ秒のウェイトを入れてみますね。
>というのも>>754を書いたあとに、「そもそもキーイベントって発生していな
>いんじゃないかな」と思ったんです。
確かに終話による入力は、VM制御範囲外ですから、イベント発生はないかもしれませんね
(ただし、「KEY_RELEASED_EVENT」イベントは発生しそう…)。
まあ、元々は「イベントで処理せいや!」という問題ですから、プログラムを変えてしまえば楽なんですが、
納期は明日な物ですから…(泣)。
もう少し、悪戦苦闘してみます。
757 さん、ありがとうございました。
0760デフォルトの名無しさん
05/03/02 23:56:51ドキュメントの、低レベルイベントの処理の説明で
「RESUME_VM_EVENT 使用されない」 と書かれているのは知っているか?
0761753=756=759
05/03/03 00:43:38あ、ほんとだ…。78ページに載ってました…。
もしかして、IApplication 派生クラスの resume を使わなければいけないのか!
ちょっと光が差してきたかも…。
>757 の指摘通りに sleep() を、今度は IApplication 派生クラスの resume へ入れて確認してみたいと思います。
あとは、キーバッファクリアもかな。
0762デフォルトの名無しさん
05/03/03 00:47:54あと、type == RESUME_VM_EVENTとか判定してるってことは、それはprocessEvent()の中のはずだけど、
一般的にイベントハンドラのなかで、busy waitするのはおすすめできない。
0763753=761
05/03/03 01:50:06resume と RESUME_VM_EVENT 、入力の発生するメソッドに println をしこんで trace させてみたら…
出力1:入力の発生するメソッド
出力2:RESUME_VM_EVENT
出力3:resume
となった。
出力2は、>760 のドキュメントの続きに、doja2.0 以降では RESUME_VM_EVENT 発生後に resume が実行される
という記述があったので、問題ない様子。
私の想像だけど、再開処理は一時停止したメソッドを完全に実行し終えてから、イベントやらメソッドを実行するようだ。
つまり、こと SELECT_KEY においては、getKeypadState() を使うと、一時停止中の動作が保証出来なくなるらしい。
…つうことは、俺は徹夜で入力系を修正せなあかんのか…(泣)。
0764デフォルトの名無しさん
05/03/03 08:56:210.1秒以内に押して離した場合、検知できない恐れががが
0765デフォルトの名無しさん
05/03/03 10:07:170766デフォルトの名無しさん
05/03/03 11:44:45http://ホスト/~アカウント/test.cgi?データ/
0767デフォルトの名無しさん
05/03/03 11:52:03ホストにIPは指定できない
jarのダウンロード元となったホスト以外はアクセスできない
0768デフォルトの名無しさん
05/03/03 11:52:09iアプリはDXでないとダウンロードしたサーバとしか通信できないってのではなく?
0769デフォルトの名無しさん
05/03/03 11:52:390770デフォルトの名無しさん
05/03/04 13:46:45900系から504まで一つのアプリで対応させていて、
Doja2.0の規格にあわせる為に画像やテキストをスクラッチパッドに格納しているんですが、
チェック先からSH505iSなどSH系が異様にダウンロードに時間がかかると言われました。
自分はプログラム担当ではなく該当機種も持っていないのでお手上げ状態。
過去スレでscratchpadにlengthをつけると良い(が問題が出る機種もある)と言うのを見ました。こちらのプログラムでは
Connector.openInputStream("scratchpad:///0;pos=" + sct[no][0]);
こうなってます。
SH系以外では問題が出ていないので他の機種で問題が出そうな対策は避けたいのですが、
何かSH系にしかない問題とか回避方法とかあるのでしょうか?
0771デフォルトの名無しさん
05/03/04 14:55:59結論から言えば根本的な回避法は無い気がする。
なぜなら通信速度はプログラムでよっぽど馬鹿なことしてない限り機種の性能だから。
時速20kmでしか走れない車で時速100kmだして走りたいと言ってるような物。
通信速度の速いFOMAと遅いムーバではかなり差が出るのは当然。数値忘れたが数倍は違うはず。
lengthオプションはスクラッチパッドへのアクセスが安定+高速されるメリットがあるが
通信速度を上げる事はない。ダウンロードしたデータを保存する時に多少早くなるが
全体的にみて時間短縮に貢献するほどではないと思われる。
記憶が正しければlengthオプションが機能するのはDoJa3.0からだったような??
結論的にはプログラムのせいではなく、機種の性能と言う事を先方に伝えるべし。
これが似たような容量のデータをダウンする他のアプリと比べて決定的に遅いならプログラムのせいだが。
あ、そうそうダウン中に画面上にアニメーションを細かく表示するようなアプリだと
通信に裂くCPUパワーが大きいのか全体的にパフォーマンスは下がる。
余談:個人的な感想だが・・・SH505よりD505の方が遅い気がするが・・・。
0772デフォルトの名無しさん
05/03/04 15:20:14業者が提供しているiアプリは「SH505iをお使いの方へ」っていう形で注意書きがあることが多いよ。
そこにはファームをアップデートしろって書いてある。
あとSHはスクラッチパッドが遅いっていうのが、ある意味伝統。
0773デフォルトの名無しさん
05/03/04 15:36:55ありがとうございます。納品間近でこんな事言われてあせってました。
というか、それを速くなるようにして下さいってひどいチェック会社だなぁ。
とりあえずこちらの大義名分が出来ただけでありがたいです。
ありがとうございました。
0774711
05/03/04 15:40:41追記
プログラム1行しかないからなんとも言えんが・・気付いた事がある。
なぜConnector.openInputStreamなんだ??ダウンしたデータ記録なら
Connector.openOutputStreamだろ??
もしや保存済みの画像データの展開の速度が遅いと言われてるのか。
スクラッチのデータの先頭指定も配列だし・・・展開っぽい気がしてきた。
もしそうならlengthオプションをつければかなり改善されるが。
504もあるなら内部で機種情報とって分岐するとか必要かも。
504でlength使ったこと無いので・・。
0775711
05/03/04 15:44:17さらに追記・・・
よくよく考えてみれば画像展開にConnector.openOutputStreamは使わん・・。
直接メディアイメージ取り出すし・・・。
なぜConnector.openInputStreamが出てきたのか判らんが・・・すまん判らなくなったwww
0776デフォルトの名無しさん
05/03/04 15:54:39770のアプリは、SPにリソースデータを一度ダウンロードして、
終わったらSPからリソースを読み込むって造りなんじゃないの?
(書き込みのコードは省略。書いてあるのは、読み込みのコードだけ)
Doja2のjarファイル30KB制限を回避するための、よくある実装と思われ。
0777デフォルトの名無しさん
05/03/04 16:16:58遅いけどある程度工夫で回避できるぞ。
むしろSPへの書き込み部分のコードを晒してみ。
0778771
05/03/04 16:24:22名前771なのに711とか書いとるし・・・何やってんだ俺w
しっかし・・・勉強不足なんだな俺、ちと言われた事が判ってないや。
かなり抜粋だが俺が画像をロードする場合は仮に1つのデータ読む際、
out=Connector.openOutputStream("scratchpad:///0;pos=200");//スクラッチの先頭指定
url = "http://abc.co.jp/abc/i/test.dat";//落としたいデータURL
connection=(HttpConnection)(Connector.open(url,Connector.READ));
connection.setRequestMethod(HttpConnection.GET);
connection.connect();
in=connection.openInputStream();
while (true)
{
i = in.read();
if(i == -1)
break;
out.write((byte)i);
}
in.close();
connection.close();
connection = null;
out.close();
って方法しか知らないや・・。
突然出てくる変数は別で宣言してると思ってくれい。
動けば良いとか思ってやっとるし^^;
0779773
05/03/04 17:16:45776さんの言う通り一度スクラッチに全て取り込んだ後に読み込んでます。
hc = (HttpConnection)Connector.open(url,Connector.READ, true);
hc.setRequestMethod(HttpConnection.GET);
hc.connect();
is = hc.openInputStream();
os = Connector.openOutputStream("scratchpad:///0;pos=" + pos);
この部分でしょうか。
0780デフォルトの名無しさん
05/03/04 19:11:43ネットから落として着信音にしたmldなどはプログラムで参照できないのでしょうか?
ゲーム内でもってる曲を鳴らせないかなと思いまして・・・。
0781デフォルトの名無しさん
05/03/04 21:07:37アプリ上でネットから落とすか、PCでJARにするときにぶちこむしかない
0782デフォルトの名無しさん
05/03/04 21:55:09そうですか・・やっぱできないですか・・。
mldが大量にある場合とかやっぱネットから落とすしか方法がないみたいですね。
返答ありがとうございます。
0783デフォルトの名無しさん
05/03/05 00:01:280784デフォルトの名無しさん
05/03/05 00:25:230785デフォルトの名無しさん
05/03/05 11:59:40>>780をよく嫁
0786デフォルトの名無しさん
05/03/05 13:02:180787デフォルトの名無しさん
05/03/06 01:26:27読んでこれるのとこれないのがあった希ガス
0788デフォルトの名無しさん
05/03/06 09:32:33アプリから使えるんじゃないのかな
激しく面倒だが
0789デフォルトの名無しさん
05/03/06 17:08:230790デフォルトの名無しさん
05/03/06 18:15:09っつうか、昔のN-88BASICじゃあるまいし、変数宣言に限界なんてあるのか?
0791デフォルトの名無しさん
05/03/06 18:55:340792デフォルトの名無しさん
05/03/06 22:44:210793デフォルトの名無しさん
05/03/06 23:46:210794デフォルトの名無しさん
05/03/06 23:47:420795デフォルトの名無しさん
05/03/07 17:57:28現在やっていること、
1.アプリがPOSTデータを作成。
2.POSTの内容を表示するPHPにアクセス。
3.PHPでPOSTが送られてないメッセージが表示される。
サーバー側のPHPはフォームからPOSTで送ったところデータを表示しました。
コーディング内容はプログラミングガイドまんまです。(※URLと書き込み内容
を変更
なにか陥りやすい罠等あれば教えて下さい。
0796デフォルトの名無しさん
05/03/07 18:10:420797デフォルトの名無しさん
05/03/07 18:21:20OutputStreamをHttpConnectionからもらって
書き込んで、closeしてHttpConnectionをconnectしています。
プログラミングガイド通りにやっているのですが、上手くいきません。
携帯からアクセスする時はサーバーのPHPに特別な処理とか
いらないですよね?
一応、POSTデータがあるたびにPHPがテキストファイルにデータを上書きしているのですが、
ブラウザからアクセスしたときのみしか上書きされず・・・
0798デフォルトの名無しさん
05/03/07 22:48:52そんな情報だけで分かるわけないだろ。
そもそもApacheのアクセスログには、携帯電話からのアクセスは記録されてるの?
それが記録されてないなら、そもそもHTTPの通信が確立されてない可能性が高い。
どこかで例外とか出てたりしないの?
0799デフォルトの名無しさん
05/03/08 00:28:370800デフォルトの名無しさん
05/03/08 01:39:57どうせurlエンコードしてねーとかだろ。
コード晒せ。
800ゲツ
0801デフォルトの名無しさん
05/03/08 01:45:000802795
05/03/08 05:09:19urlエンコードはしてません。
ドコモのサンプルではエンコードしていないように見えるのですが
しなければならないのでしょうか・・・
ちなみに、コネクションの確立までは上手くいっています。
サーバー側のPHPはPOSTがあった場合に、
それの有無を表示するつくりになっています。
アプリでアクセスしたときには、
POSTデータはありませんとレスポンスが帰ってきます。
eclipseでデバッグしながら確認していますが
例外は拾っていません。
setRequestPropertyと
setRequestMethodはきっちり設定しています。
ドコモのサンプル丸写しで、サーバー名だけ変えたものなので
動くはずなのですが、動かないのが不思議です。
他に手立てが無いので
ご助言のとおりurlエンコードをしてみます。
0804800
05/03/08 08:12:58setRequestPropertyだった。
0805デフォルトの名無しさん
05/03/08 09:23:35ソ ー ス 晒 せ や
0806デフォルトの名無しさん
05/03/08 11:33:240807デフォルトの名無しさん
05/03/08 11:44:36Phone.call("117");
電話にでることはできるでしょうか? 具体的には、ベルが鳴っている
ときに、「1〜9のキーを押すことで電話にでる」待ちうけアプリを
作りたいんです。
0808デフォルトの名無しさん
05/03/08 11:47:080809802
05/03/08 12:06:38// POST
HttpConnection con = (HttpConnection)Connector.open(
"アプリがあってDNSに登録しているサーバー", Connector.READ_WRITE,
true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type","text/plain");
OutputStream out = con.openOutputStream();
out.write(("POST=DATA" + "\n").getBytes());
out.close();
con.connect();
if( if(con.getResponseCode() == HttpConnection.HTTP_OK){
String [] res = new String[256];
InputStream in = con.openInputStream();
int d=0;
d = in.read();
msg += (char)d;
while( d != -1)
{
d = in.read();
msg += (char)d;
}
in.close();
}
con.close();
}catch(Exception e){ }
こんなんです。
例外処理のところはprintlnで表示していますが
表示された事はないです。
msgにちゃんとサーバーのPHPが返すPOSTデータがありません。
というのが入ってきます。
0810801
05/03/08 12:12:36con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
0811801
05/03/08 12:15:35finally節でストリームとHttpConnectionのクローズと、明示的な null 代入を
かましてあげないと、機種によっては不具合が出る。
0812デフォルトの名無しさん
05/03/08 12:40:380813802
05/03/08 15:54:19ありがとうございます。
application/x-www-form-urlencodedこれでいけました。
感動です、GETに心移りかけていただけに感動です。
ドコモのサンプルはtext/plainなのに駄目なんですね。
finally節かまします。
ありがとうございました。
0814デフォルトの名無しさん
05/03/08 16:50:23ドコモは関係ない
0815デフォルトの名無しさん
05/03/08 20:15:33どうしても端末から取得した画像のファイルサイズを調べることができません。
どのようにしたらよいのでしょうか?
0816デフォルトの名無しさん
05/03/08 21:06:43既出ですね。
さよなら
0817800
05/03/08 22:04:55まったく不思議なヤツだ。
…あ、釣りか
0818デフォルトの名無しさん
05/03/08 22:10:44どの命令文を使うかだけ教えてもらえないでしょうか?
0819デフォルトの名無しさん
05/03/08 23:44:170820デフォルトの名無しさん
05/03/09 00:08:18それらしきものは「size();」「getImageLength(int) 」
どれなんだ?おそらく2つとも違う。
0821800
05/03/09 00:23:10ストリーム駆使したらできたぞ。
回りくどくても動けばよし!ってノリだったがw
他にいいやり方あるんだろうけどね。要は応用。
ここまで言ってわからなかったら…もうダメポ
0822デフォルトの名無しさん
05/03/09 00:27:18「画像」がどういう形になってるのかにもよると思うんだけど、
Imageオブジェクトになってるなら、そもそもファイルフォーマットが未確定なのでサイズなんて知る由も無いし、
(ImageEncoderでJPEGにしてからサイズ計るのならわかるが)
Imageオブジェクトじゃないなら、そもそもバイト配列かストリームなわけなので、
何バイトか数えれば済むと思うよ。
0824デフォルトの名無しさん
05/03/09 00:51:23ありがとうございます。
ソースを提示します。
ImageStore w_imagestore = ImageStore.selectEntry();
int w_id = w_imagestore.getId();
MediaImage w_media = w_imagestore.getImage();
w_media.use();
photo = w_media.getImage();
なんですが、この後「photo」をSPに保存したいんです。
SPが200kbと仮定して画像1が8kbで画像2が10kb…のように
200kbいっぱいまで保存していけるようにしたいのです。
その際に詰めるためにファイルサイズがどうしても知りたいというわけです。
0825デフォルトの名無しさん
05/03/09 00:57:15だから、Image型であるphotoを、ImageオブジェクトのままSPに書き込む方法はない。
すると、photoはImageEncoderでJPEGにして、ストリームを取得する必要がある。
(もちろんJPEGの品質によってファイルサイズは変わる)
そのストリームのバイト数は、自分でカウントすればいいだろ。
read()する度に何バイト読んだかカウントするだけだ。簡単だろ?
0826デフォルトの名無しさん
05/03/09 01:07:20ありがとうございました。
だいたいの流れはつかめました。
w_out=Connector.openOutputStream("scratchpad:///0;pos="+po);
w_data=new byte[128];
while((w_length=w_in.read(w_data))!=-1){
w_out.write(w_data,0,w_length);}
こんな感じですよね?
0827デフォルトの名無しさん
05/03/09 01:27:54おいおい、w_lengthは累積して足し込まなきゃ総計何バイトなのかわからないでしょうに。。}
0828デフォルトの名無しさん
05/03/09 01:50:39ImageStoreのリファレンスをよく読め。
InputStreamを取得するメソッドがわざわざ用意されてるだろ。
その時点で気付きそうなもんだ。
0829デフォルトの名無しさん
05/03/09 14:37:03(HttpConnection)Connector.open(URL,Connector.READ_WRITE,true);
htcon.setRequestMethod(HttpConnection.POST);
htcon.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
OutputStream htout = htcon.openOutputStream();
htout.write(DATA);
htout.close();
htcon.connect();
htcon.close();
PHPにデータを送信したいので上記のようにしてるんですが
PとNでは動くのにSHは固まってしまいます。
htcon.connect();
htcon.close();
この辺が怪しいと思うんですけどどうすればいいんでしょうか?
0830デフォルトの名無しさん
05/03/09 16:10:11(HttpConnection)Connector.open(URL,Connector.READ_WRITE,true);
htcon.setRequestMethod(HttpConnection.POST);
htcon.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
OutputStream htout = htcon.openOutputStream();
OutputStreamWriter htoutw = new OutputStreamWriter(htout);
htoutw.write(DATA);
htoutw.close();
htout.close();
htcon.connect();
htcon.close();
これならどう?
0831デフォルトの名無しさん
05/03/09 16:37:000832デフォルトの名無しさん
05/03/09 16:44:03ありがとうございます。試してみます。
>>831
画面が固まってキーも何も受け付けなくなるってことです。
0833デフォルトの名無しさん
05/03/09 17:38:56なぁ。それを他人に言われたとして、わかると思うか?
固まる?
何が。キーも何もって、キー取得のプログラム書いてるの君だろ?
どう取得してるのかもわからん。
強制終了キーすら聞かなくなるのなら尊敬するがね。
「俺はお前じゃない」
0834デフォルトの名無しさん
05/03/09 18:31:380835デフォルトの名無しさん
05/03/09 18:40:17お前うざいよ。
聞いてる本人は努力してるし機種よって発生するバグは経験がきっかけで
バグを取れることがあるんだからここで質問する事はかなり有意義なことだろ。
固まるだけで判らんとか、揚げ足取りかっこ悪いぞ。判らんなら黙ってろ。
>>832
CGIアクセスのアプリしか作ったこと無いので参考になるか判らんが
過去機種によってはメモリ使用量がからんでる場合もあった。
画像を大量に使ってるアプリだったのだが当時スクラッチにアクセスする際
lengthオプションを知らず画像展開してたのだがその時は以下のような事が起きた。
初回起動時:画像をダウンするためにネットアクセスが先。その為初回起動時は
メモリが確保されてるためかCGIへのアクセスも正常に。
2回目以降:スクラッチにダウンしたデータから開くのが先ででネットアクセスは後。
ネットアクセス時メモリが足りないのか正常アクセスできなかったりエラーやフリーズが発生する機種も。
lengthつけてメモリ使用をはっきりさせることで回避できたがつけてようがつけてまいが
メモリの使用量がギリギリのラインだと機種によっては不具合でるかも。
0836デフォルトの名無しさん
05/03/09 19:18:13> 聞いてる本人は努力してるし
あなた、エスパーですか?
> 参考になるか判らんが
キミの言葉をそのまま借りて、「判らんなら黙ってろ」とでも言うべき?
つーか、君が長々と書いた心の底からどうでもいい体験談が、
どうしてこの問題の解決に役立つと思ったわけ?
教えてクンに、どうでもいい回答者にと、本当にカオス状態だな最近のこのスレ。
とにかく、まず>>829はどう「固まる」のか現象を詳しく調べて書きなさい。
念のため、俺は>>831でも>>833でもない。
0837836
05/03/09 19:28:14メーリングリストの話だけど、掲示板でも概ね通用するでしょう。
質問者は、質問する前に立ち止まって、まずこれに一通り目を通して欲しい。
技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
真・技術系メーリングリスト FAQ
http://www.geocities.co.jp/SiliconValley/5656/
0838デフォルトの名無しさん
05/03/09 20:01:02試して貰ったのですが、まだ駄目なようです。
>>833
キーの取得はSoftKeyListenerで受け取ってます。
電源ボタンでの終了等は動きます。
送信はPanel上のボタンが押されたときにcomponentActionで受け取り
その中で829に書いたメソッドを呼び出して行っています。
ですが、SH900iにおいてデータが送信されず
メソッドから戻ってこないような感じです。
手元にSHがあるわけではないので、詳しい状況はよく分かりません。
>>835
文字列を送信するだけなので、メモリの使用量はたいしたこと無いと思います。
>>836
上記のようなしだいです。
まだ足りないところがあれば教えていただきたいです。
0839デフォルトの名無しさん
05/03/09 21:13:04サーバレスポンスはどうだったかとか、
そういうのは?
0840デフォルトの名無しさん
05/03/09 21:32:32トレース情報からどこまで処理が進んでるか確認してみな。
その結果をもらえればもう少し良いアドバイスが貰えるかも。
ちなみに、「固まる」って言葉を嫌うプログラマーは多いよ。
キーを巻き込んでるのか、サウンドまで道連れにしてるのか、
この辺りによって状況が全く異なるからね。
かくいう漏れも、デバッカーに何も考えずに「固まった」とか言われると、
思わず無賃残業で再発確認させたくなる気分になるw
0841デフォルトの名無しさん
05/03/09 22:16:05ちょっとひねくれた見方だけど>>829はメソッドとはいえない。メソッド群って意味なら可。
あるメソッドの一部が829だとすると、書いてないとこが原因では?とも考えられる。
逆に書かれている部分に変なところはなさそうな気がする。
手元にSHが無いなら、その現象は誰が起こしてんの?そう客に言われただけって事?
とりあえず間違ってないと思ってる部分も色々疑ってみては?
0842デフォルトの名無しさん
05/03/10 01:31:32おいおい、componentActionの中でHTTP通信してるの?
じゃあ、componentAction()から抜けるまで(HTTP通信が完了するまで)
キーイベント受け付けない可能性があるよ。
そもそもイベントハンドラの中で通信するなんてコードは書かない方が良い。
そういう時はcomponentAction()の中でHTTP通信するスレッドをrunしましょう。
0843デフォルトの名無しさん
05/03/10 08:14:39じゃ、これ以上は無理だ
0844デフォルトの名無しさん
05/03/10 09:12:17なんかSUGEEEEEEEE!!セオリー無視の書き方してるっぽいから、
ソース全部どっかにUPしたら?
>>835
本人の自作自演かとも思ったが、ただの馬鹿らしいな。
てめーのその経験談は、とっくに告知済みのP900/N900問題だ。PDF読め。
今回の質問者はSHな上、P900問題はフリーズなんてしねーよ。
相手の言いたいことを推測してものをいうと、見当はずれのことを言って混乱させることのほうが多いんだよ。
だから「詳しくかけ、話はそれからだ」と言ってんだ。
>>838
commandActionが通信終わるまで固まってしまう。
やってはいけない実装だ。
commandAction内ではフラグの書き換えだけ行って、フラグが書き換わってたらメインスレッドで通信を行うようにするべし。
0845デフォルトの名無しさん
05/03/10 09:27:49DoCoMoに機種固有の問題がPDFで配布されていたと思うけど、
もうそれは読んだ?
0846デフォルトの名無しさん
05/03/10 10:33:180847デフォルトの名無しさん
05/03/10 10:56:20DoCoMoのサービス問い合わせ(留守電が入ってないか確認するヤツ)
を一定時間毎にしてくれるiアプリってないですしょうか?
そもそも、そのへんはiアプリでは制御出来ないものでしょうか
機種はD505iSです
ご存知の方、宜しくお願いします
0848デフォルトの名無しさん
05/03/10 12:05:53例えば、収支が100円で食費が80円の場合、
比率=食費/収支で算出できますが解が少数なので、0が入ってきますよね?
皆さんはどうやって対処してるんでしょうか?
0849デフォルトの名無しさん
05/03/10 12:15:360850デフォルトの名無しさん
05/03/10 12:16:55整数%でイイなら計算するまえに100倍
小数点1位まで必要なら1000倍
でどう?
0851848
05/03/10 12:22:18私すごい馬鹿なんで100倍が理解できないです。
収支が100円で食費が80円で、食費の割合を求めたいときは、
x = (100*100)/(80*100)
ですか?でもコレだと解は小数点になるような・・・
適当に思いついたいのですが、
x = 100 - 100%80
だと、求められるような気がしますが数字によっては破綻しますでしょうか?
0852デフォルトの名無しさん
05/03/10 12:22:56サーバで計算させて結果をダウンロードする。
(゚∀゚)
0853848
05/03/10 12:28:520854デフォルトの名無しさん
05/03/10 12:39:17100倍するのは分子の方だけ。
小数点を表示させたいのであれば、結果を一度文字列にして適当な位置に「 . 」を追加するしかない。
0855848
05/03/10 12:41:53x = (80*100)/100
だと確かにxがいきなり80になってとても便利ですね。
助かりました。ありがとうございます。
0856デフォルトの名無しさん
05/03/10 12:41:53x=80*100/100
0857デフォルトの名無しさん
05/03/10 12:55:31↓両辺を100倍
100*比率=100*食費/収支
分かった?
0858デフォルトの名無しさん
05/03/10 13:11:13荒らしだと思ったぞ。
0859デフォルトの名無しさん
05/03/10 13:40:47答えてやろうという方よろしくお願いします。他の方はスルーしてくださいな。
当方現在505・900など240*240表示できる機種で
共通で動くアプリ作成中です。DoJa3.0基本で。
で演出でブラックアウトなど画面全体の色見を変えて画面切り替えを
行おうと思ってるのですが現在はgetRGBPixelsでキャンバスの画像を取得>
各ドット(240*240)を目標とする色(黒とか)へ近づける>
setRGBPixelsを使い描画するという内容を繰り返す、で作ってみたものの
手元にあるD505iと友人のP900iでは共通して使い物に
ならないほど遅く(Pの方がここだけ遅い)エミュでもそこそこの速度。
スムーズなブラックアウトやホワイトアウトなど作る際に何か
他の方法がありましたらご教授ください。
0860デフォルトの名無しさん
05/03/10 13:51:500861859
05/03/10 13:58:25Graphics gg = getGraphics();
gg.setOrigin(off_x,off_y); //画面の位置を設定
gg.getRGBPixels(0,0,240,240,pic,0);
//kaiには何段階で色を変化させるかの数がはいってる
for(i = 0;i < kai;i++)
{
for(j = 0;j < (240*240);j++)
{
//取得したドットをr,g,bに分解
b = pic[j]&0xff;
g = (pic[j]&0xffff)>>8;
r = (pic[j]&0xffffff)>>16;
//r2,g2,b2は最終的に変化させたい色の値が入ってる
pic2[j] = ((((kai-i)*r)+(i*r2))/kai)<<16;
pic2[j] += ((((kai-i)*g)+(i*g2))/kai)<<8;
pic2[j] += ((((kai-i)*b)+(i*b2))/kai);
}
gg.lock();
gg.setRGBPixels(0,0,240,240,pic2,0);
gg.unlock(true);
}
0862デフォルトの名無しさん
05/03/10 14:10:50一番楽なのは、ブラックアウト/ホワイトアウトをあきらめて、マスクを重ねて
ワイプ処理でごまかす。
DoJa3.0で、全機種で動く半透明フェードをやりたければ、Graphics3Dを使って
画面いっぱいの半透明ポリゴンを重ねるのが唯一の方法。
0863デフォルトの名無しさん
05/03/10 14:12:51for(j = 0;j < (240*240);j++)
57600回も繰り返せば遅いのは当たりまえ。
0864デフォルトの名無しさん
05/03/10 14:26:56859ではありませんが、便乗させて下さい。
何かを描画した後の画面にマスクが掛けられるんでしょうか?
白地に黄色の正方形をかいて、
青でマスクを掛けた場合は、白地が青になって、黄色が緑に?
こんな便利なことが出来るんですか!?
0865859
05/03/10 14:31:34あきらめてワイプ処理〜っと言うのは実際にはどういうものでしょうか?
下のポリゴンの方はなんとなく理解できますが。
>>863
ビット演算が回数多いため遅いのは覚悟はしてたのですがソース見てわかる通り
変化させたい画像(画面)の状態は色見以外変化させないでやるつもり
だったので動きが無い分多少遅くても良いかと思ってたんですが
想像をはるかに超えて遅かったのでこの方法はダメかとなったわけです。
部分的に変化させるとかなら使えそうではあるんですけどね。
この方法を選んだのはブラックアウトなどに限らず色味の変化を自在に
操れそうかなぁっと思ったからです。
正直なところ505以降でどういったことが出来るのか?というのを
ただいま勉強しながら色んな実験をしてるところなんです。
0866デフォルトの名無しさん
05/03/10 14:38:14黒25%透明75%な画像を描画(ちょっと暗くなった感じ)
↓
黒50%透明50%な画像を描画(暗くなった感じ)
↓
黒75%透明25%な画像を描画(かなり暗くなった感じ)
フェードイン、フェードアウトは白黒以外諦めた方がいいと思うよ
0867836
05/03/10 15:32:38いまだと半透明ポリゴンで覆っちゃうけどね。
携帯もそのうち楽にできるようになるでしょう。
それまでは他の場面転換エフェクトを考えるのが吉。
ワイプはアレだ、wipe(拭く)という言葉通り、
画面が端のほうからジョジョに変わってったりするやつ。
0868デフォルトの名無しさん
05/03/10 15:36:010869859
05/03/10 15:51:21よくみかける端から黒い帯が伸びたりするタイプのことでしょうか?
fillRectなどでアニメーションさせつつ黒い範囲が増えていくような。
>>868
Graphics2も考えましたが実装状況をみると明らかに
対応していない機種が多数あるようです。
0870862
05/03/10 16:07:58そのとーり。
>>868
使えない機種が多い。F900とか。
>>864>>866
Graphics3Dで半透明ポリゴンを上から重ねる方法は、
・加算/減算の半透明が使える
・ポリゴン自体の色は任意の色が使える
というところで、使い方次第でいろいろできる。
例えば、フェードアウトだったら、減算半透明で画面全体を覆うポリゴンを描いて、
その色を(0x00,0x00,0x00)→(0xff,0xff,0xff)に段階的に変えていけばいいわけだ。
0871859
05/03/10 16:56:523Dはまだ触れていない所なので今後やってみることにします。
0872デフォルトの名無しさん
05/03/11 01:35:04リファレンスを読むと最初の2バイトが文字の総バイト数で
その後に文字列が書き込まれると書いてあるんで22バイトかと思ったら
スクラッチパッドを見ると22バイトを超えてるような気がします。
いったいどうなってるんでしょうか?
0873デフォルトの名無しさん
05/03/11 01:39:45だったら日本語1文字について3バイト消費するよ。
だから、10文字だったら32バイトかな。先頭の2バイトのヘッダ含めて。
0874デフォルトの名無しさん
05/03/11 02:12:29ありがとうございます。
ちょうど今UTF-8について調べてたら1文字3バイトって書いてありました。
日本語=2バイトだとずっと思いこんでた。orz
0875デフォルトの名無しさん
05/03/11 10:20:55int[] getRGBPixels(int x, int y, int w, int h, int[] pixels, int off)
指定する領域のピクセル値を0xRRGGBBの形式で取得します。
static Image createImage(int width, int height, int[] data, int off)
RGB配列を指定してイメージオブジェクトを生成します。
この二つを使えば、使い物になる程度には速いよ。
ただし、エミュレータだと地獄の遅さなので、デバッグフラグで処理切り替えられるようにしておいたほうがいい。
240*240なら1分くらい平気でかかる<エミュ
実機なら1秒はかからないと思う。
0876デフォルトの名無しさん
05/03/11 10:52:070877859
05/03/11 11:00:53実験してみました。
>>861で表示したソースの
gg.setRGBPixels(0,0,240,240,pic2,0);
の部分を
gg.drawImage(Image.createImage(240,240,pic2,0),0,0);
に変更して実行してみました。
結果:
エミュでは言われてる通り1回の処理で1分以上かかる感じ。
実機D505iでは1回の処理に約3秒。
D505iにおいては体感的にsetRGBPixelsとあまり変わらないか少し遅いくらいな結果になりました。
でもこういうやり方もあると参考になりました、ありがとう^^
0878859
05/03/11 11:05:35単純に私のビット演算の処理の仕方のまずさで遅いのだと思います。
毎回RGB分解する必要はないのですがメモリの消費量を気にしてたりして^^;
仮に分解部分を外にだして1回だけにしても多少速度が上がる程度だとは思いますが。
その時の色の描写の計算式に掛け算、割り算を使ってますから・・・そこが重いのかと。
0879859
05/03/11 11:22:43>>861で表示したソースの
for(i = 0;i < kai;i++)
を
for(i = 1;i <= kai;i++)
に訂正。間違えてました。
でもう一度
gg.setRGBPixels(0,0,240,240,pic2,0);と
gg.drawImage(Image.createImage(240,240,pic2,0),0,0);
の速度をD505iでアバウトながら比べてみたところ
setRGBPixelsをつかったループは1回で約1秒。
createImageをつかったループは1回で約2秒でした。
テストでRGB分解の結果をあらかじめ保持するパターンも作ってみましたが
D505の場合このテストアプリが他にもいろいろ実験しててある程度メモリを使ってる
こともあってか処理に入った段階でメモリが足らなくなって落ちました^^;
0880デフォルトの名無しさん
05/03/11 13:10:20すまん、俺はD900iで実験したもんで、15ミリ秒くらいだったから使えるなーと思ってたんだが
そうだね。505系だとダメだわ。
0881デフォルトの名無しさん
05/03/11 15:27:14ググってみても参考になる場所が一切見つからず。
依然としてブラックアウトの方法を色々試してみてるのですが
昨日言われたポリゴンを重ねる方法、3Dプログラミングの
経験は0でもプリミティブを1枚表示くらいは出来るだろうと
思っていたのですがうまく行きません。
//priは座標と色が設定済み4角プリミティブ。
g3 = (Graphics3D)g;
g3.setScreenCenter(0,0); //表示位置
g3.setScreenView(240,240); //平行投影
g3.enableSemiTransparent(true); //半透明on
g3.renderPrimitives(pri,g3.ATTR_BLEND_SUB);
g3.flush();
とやってみたのですが結果はエミュ上では右と下1ドット
足りずD505iでは右のみ1ドット足りないプリミティブが
表示されます。ソースにありませんがプリミティブの座標を
どんなに大きくしてもまたスクリーンの大きさをいかに変えようとも
右と下の1ドットが欠けてる状態になります。
クリップなども一切していないのですが原因を突き止める事が出来ません。
よろしければお知恵をお貸しください。
0882デフォルトの名無しさん
05/03/11 15:34:26あー…。うん。
Graphics#drawPolygonでも右と下が1ドット欠ける機種あるよね…。
つまりそういうことだと思うよ(´・ω・`)
0883デフォルトの名無しさん
05/03/11 15:40:19友人に連絡してP900iにて動作させてもらったら
ドットの欠けは無いようです。(速度もほぼ低下せず)
機種依存なのでしょうか。
機種依存なら欠けることを踏まえて使えば速度的には
かなり優秀(D505は遅いですが)っぽいですけどね。
0884デフォルトの名無しさん
05/03/11 15:48:070885デフォルトの名無しさん
05/03/11 15:49:31なのでdrawPolygonは使うなというのが一般的見解。
3Dでもなるというのは知らなかった。
おそらく内部で、drawPolygonを使ってやってるんだろうね。
0886デフォルトの名無しさん
05/03/11 15:50:40#を3回押下後3キー
0887デフォルトの名無しさん
05/03/11 15:53:02嘘と思いつつ、今デバッグ中だったので試してしまったw
もちろん反応なっすぃ
0888886
05/03/11 16:23:58俺、DEBUG AVAILABLEってでるよ。
左に1.3Mとか表示されてる。
信頼できる先輩にデバッグ方法を教わったので間違いないハズ・・・
0889デフォルトの名無しさん
05/03/11 16:29:450890887
05/03/11 16:32:130891デフォルトの名無しさん
05/03/11 16:55:51ヒープと言ってもJavaヒープとネイティブヒープがあるぞ。
Javaヒープのみ取得可能。
CLDCのクラス Runtimeを使うべし。
使い方判らなければテンプレにあるサイトん・ぱか工房へ行けば書いてある。
0892887
05/03/11 17:07:30たまたまここ見ながらデバッグ作業してたもんで、試してみたってだけで…。
0893デフォルトの名無しさん
05/03/11 17:12:19auの携帯電話じゃねーかよ。
0896デフォルトの名無しさん
05/03/12 09:53:340897デフォルトの名無しさん
05/03/12 18:43:13オススメのJavaオプティマイザなどご存知ないでしょうか?
JavaBlenderを使っていたのですが、突然使えなくなってしまいました。
ちょっとサイズがシビアなアプリを作っており、
オブファスケーターのみだとちょっと心もとなくなりそうで…。
ちなみに今、ProGuard+7zで29.7KBほど。
0898デフォルトの名無しさん
05/03/12 18:49:56> ちなみに今、ProGuard+7zで29.7KBほど。
ProGuard+jarg+7zすると少しだけ小さくなる。
有料の製品ならSophiaCompress。ただ設計によっては速度が遅くなった経験あり。
0899デフォルトの名無しさん
05/03/12 19:46:30200バイトほど小さくなりました。
状況が状況なので、かなり救われてます…。
確かにSophiaCompressは色々と聞きますね。
何だかんだでほとんどのアプリでは問題ないのでしょうが、
お金を払うことを考えるとどうしても尻込みしてしまいます。
0900899
05/03/12 20:21:57一応体験版があるみたいよ。試してみたら?
私が製品版で試したケースでは、
ProGuard+jarg+7zよりもさらに1,2割小さくなったけど、
実行速度が遅くなった。
過度なクラス融合が悪さをしたと思われ。
製品版は額も半端じゃないから使わないとすれば、
あとはがんばってチューンするしかないよねぇ…
0902デフォルトの名無しさん
05/03/12 20:33:04>JavaBlenderを使っていたのですが、突然使えなくなってしまいました。
これの原因は放っておくのか?
0903デフォルトの名無しさん
05/03/12 23:04:21試したアプリがクラス2個だったせいもあると思うが、ProGuard+jarg(-nobco)+7zより
数%小さくなっただけだったんでその時は採用しなかった
0904899
05/03/12 23:14:56普段は、iDKのコンパイラは一切使わず、全てコマンドラインで
コンパイルしているのですが、その場合、blender505.exeで
「verification failure」とエラーメッセージが出力されて
以後の処理全てが失敗します。
おかしいと思いiDKよりコンパイルしてGUIからの実行してみたのですが、
「コード検証に失敗しました(Phase 2)」と表示されてやはりだめでした。
本当に突然で、最後にコンパイル成功してから、
数十行追加して再度コンパイルしたところだめになってた、という感じです。
0905デフォルトの名無しさん
05/03/13 00:24:570906904
05/03/13 00:54:36すみません。正確には、
「iDKからjavac.exe,preverify.exe,jarを呼び出してのコンパイル」でした。
そういった意味では、全てSunのコンパイラですね。
0907デフォルトの名無しさん
05/03/13 02:12:34そういうのは突然とは言わないだろう。
数十行追加した内容か、もしくはその追加行為によってたまたまJavaBlenderの
何かしらの制限を越えてしまったことが原因と考えられるわけだな。
もし詳しいことが分かったら、他のJavaBlender使いの人の参考になると思うので
報告してもらえるとありがたい。
0908904
05/03/13 03:03:09了解です。少し前のことなのでうろ覚えですが、現時点で覚えている限りで。
最後に数十行追加したのは本当に簡単な内容で、
switch〜caseの条件分岐と、try〜catch構文がいくつか、
あとは、変数の代入程度、ありふれたコードなので
この数十行に原因があるとは考えにくいと思っています。
コンパイラは一通り試してます。
1.3.x,1.4.x,1.5.x
全てダメでした。1.5.xはiDKとの相性は悪いようですが、
コマンドラインでターゲットVMをきちんと指定してあげれば、
JaveBlenderを通さない限り正常動作しました。
ソースの書き方としては、もともとサイズギリギリになることわかってて
それを前提で作ってるので、インスタンス生成の即値からいきなりメソッド読んだり、
((new Thread(this)).start()とか)
数百回の再帰が行なわれる再帰メソッドを構成したり、
結果、メモリの確保・開放は激しいと思います。
納期まではまだ時間あるので、JavaBlender復活をもう少し目指してみつつ、
もしうまくいったら後日報告します。
0909デフォルトの名無しさん
05/03/13 23:28:400910デフォルトの名無しさん
05/03/14 01:09:21Graphics#drawScaledImage ではだめか?
0911デフォルトの名無しさん
05/03/14 02:09:33無事できました。
ありがとうございました。
0912デフォルトの名無しさん
05/03/14 11:16:33対応するのはどれなのでしょうか?
0913デフォルトの名無しさん
05/03/14 15:39:19try
{
mi = MediaManager.getImage("resource:///"+teigisita.gif);
mi.use();
}catch(Exception e){}
よくある、リソースからの画像読み込み処理ですが、
これを何回も呼び出すメソッドを作りました。毎回呼び出す画像は違いますが・・・
ところが二回目以降例外が発生してしまいます。
MediaManagerとImageをunuseとdisposeをしてもうまくいきません。
何がまちがっているのでしょうか?
0914913
05/03/14 15:48:31APIリファレンスによると、
ストリームを指定してMediaResourceオブジェクトを取得し、
MediaResource.useメソッドをunuseメソッドを挟んで複数回呼び出した場合、
1回目のuseメソッドは成功しても2回目以降のストリームからの読み出しができず、
結果的に例外をスローすることがあります。
まさにコレなんですが、もしかして、呼び出す画像毎にオブジェクトつくらないと
だめなんでしょうか?
一つのオブジェクト使い回しはだめでしょうか?
0915デフォルトの名無しさん
05/03/14 15:55:02system.gc();
でもやっとけ
0916デフォルトの名無しさん
05/03/14 16:10:49>取得したイメージオブジェクトは、 そのオブジェクトを参照しているオブジェクトが
>存在しているか否かに関係なく 無効(Image.dispose() が呼ばれた状態)となります。
使い回せないように読めるけど
VisualPresenterだと違うのかな?
0917913
05/03/14 16:16:16イメージをロードするメソッドだけを試したところ上手くいきました。
但し、MediaImageは一切破棄しないで、メンバを使い続けてます。
メモリがどのように使われてるかはこれから調査しますが、
こういう使い方はありなんでしょうか?
0918913
05/03/14 16:28:37こういうコーディングだとメモリが減りませんでした。
Image image = LoadImage("取り出したいイメージ"); //よくあるロード処理
g.drawImage(image,image.getWidth(),0); //MediaImageだけメンバで保持
image.dispose();
mi.unuse();
Runtime rm = Runtime.getRuntime();
rm.gc();
g.drawString(""+rm.freeMemory(),100,100);
実機で試しても上手く行ってるようです。
0919デフォルトの名無しさん
05/03/14 16:45:090920913
05/03/14 16:50:09初心者サイトをみるとコンストラクタで呼んだきりで
その後何回も呼びまわすのが見つかりませんでした。
何回も呼び出す場合はMediaImageは結局unuseすべきなんでしょうか?
それともそのままでいいんのでしょうか?
0921デフォルトの名無しさん
05/03/14 16:56:04ロードする画像領域分だけ
MediaImage と Image は持つようにしましょう。
0922913
05/03/14 17:00:56勉強になりました。
0923デフォルトの名無しさん
05/03/14 17:37:40画像をアプリ中で読んだり消したりを繰り返す場合は
MediaImage とImage を保持する形で作りそれぞれ解放すべし。
ただ過去スレで…Nだっけか?あれだけちょっと特殊とかあったような?
解放するときにtry〜catchで引っ掛ければ良いだけだけだったとは思うが。
良い方法ではないだろうがアプリ内で読み込んだきり絶対解放しない画像に
ついてはMediaImageは保持していないでも問題ないと思われる。
0924デフォルトの名無しさん
05/03/14 17:57:53文字や数字のデータをアーカイブしたデータをWebに上げて
起動時にダウンロードをしてスクラッチパッドに書き込んでいるのですが
下のようにすると、文字のデータが正しく書き込まれません
in = new InputStreamReader( hc.openInputStream() );
out = Connector.openOutputStream( "scratchpad:///0;pos=0" );
while( true ){
i = in.read();
if( i == -1 )
break;
out.write( i );
}
そのまま内容を書込みたいだけなんですが・・・宜しくお願いします
0925デフォルトの名無しさん
05/03/14 18:04:15>>778を参照
0926デフォルトの名無しさん
05/03/14 18:13:29上手くいきました。
何故かInputStreamReaderで書いていました…
ありがとうございます
0927デフォルトの名無しさん
05/03/14 20:09:05javac は javac じゃないかな?
java もエミュレーションするときは java 使ってると思うが・・・。
うちじゃ Unit がでかすぎて使えそうな気がしない。
0928デフォルトの名無しさん
05/03/14 22:17:19drawImageの引数を書き換えただけで何故かフリーズ。(画面が真っ白なまま動かない。電源キーなどは反応するからエミュがフリーズしたわけではない)
System.out.printlnを無意味に足したら何故か動く。
drawImageのX座標に1足したらまた動かなくなった。
3.5に戻すわ…。
0929デフォルトの名無しさん
05/03/14 22:57:180930デフォルトの名無しさん
05/03/14 22:59:120931デフォルトの名無しさん
05/03/14 23:17:360932デフォルトの名無しさん
05/03/14 23:30:03javacとjavaでいいんですね。
そいでもって、classes.zipやdoja_classesあたりをclasspath
指定すればよいようです。ありがとうございました。
0933928
05/03/15 00:27:00俺のプログラム自体に「何割かでフリーズする」バグがあったっぽ
ごめんDoCoMoの人_| ̄|○
0934デフォルトの名無しさん
05/03/15 10:34:250935デフォルトの名無しさん
05/03/15 11:14:47基本APIなった3D関係を動作させるとPCのメモリを異常なまでに食う。
ものの数分でPCそのものの動作が安定しなくなるほど。
タスクマネージャーで見てると恐ろしいほどCPUとかに負荷がかかる。
って同じ経験の奴いない?
0936デフォルトの名無しさん
05/03/15 11:24:24おそらくそういうことなんだろうな(´・ω・`)
0937デフォルトの名無しさん
05/03/15 11:29:53F900iTが、そんなもの微塵も存在しないパレット情報を返してくるんだが、
一体どうなってるんだ?
32bitで、
0~7=R
8~15=G
16~23=B
24~31X
だよな?
具体的に言うと。実機や他の機種では
255,0,255,0 のパレット情報が
31,248,0,0 になってる
……ん?
つまり……。なにこれ…565の16bit画像じゃんorz Windowsの16bit演算の悪夢が再びかよ
0938デフォルトの名無しさん
05/03/15 11:37:100939デフォルトの名無しさん
05/03/15 11:45:12帰ってくるintの意味は実装依存じゃないのか?
エミュや機種によって違ったりした記憶がある
設定する値はGraphics.getColorOfRGB()使わなきゃいかんよねぇ
0940デフォルトの名無しさん
05/03/15 11:48:400941デフォルトの名無しさん
05/03/15 11:50:06情報ありがとう。
getColorOfRGBか…。懐かしいな。
自作メソッドの中に閉じ込めてたから、久しく見てないよ。
で、次の問題は
intをRGBに分解する方法なんだが、知恵をお借りできないだろうか。
メソッドある?
それともgetColorOfRGBで0, 64, 128あたりをintに変換したあと、自前解析っすか(´・ω・`)
0942デフォルトの名無しさん
05/03/15 11:54:43> それともgetColorOfRGBで0, 64, 128あたりをintに変換したあと、自前解析っすか(´・ω・`)
DoJaでメソッドが定義されていないなら無駄な努力だと思うが。
中には全然関係ない値を帰す実装が無いとは言えんぞ?
0943デフォルトの名無しさん
05/03/15 11:59:36とりあえず
R_MASK = Graphice.getColorOfRGB(255, 0, 0);
G_MASK = Graphice.getColorOfRGB(0, 255, 0);
B_MASK = Graphice.getColorOfRGB(0, 0, 255);
とマスクを最初に取得して、操作することにしました。
A/Bに暗くする処理しか考えていないのでとりあえずこれで大丈夫そう。
加算とかが作りにくそう(´・ω・`)
しかしこれ、例えば
(Rの値 * A / B) & R_MASK
と計算するから、最上位8bitにRGBの情報が割り振られている機種ではどうなっちゃうやら(´・ω・`)
今のところ見当たらないけど…。
0944デフォルトの名無しさん
05/03/15 12:48:30やめとけ。
悪夢を見るよ。
0945デフォルトの名無しさん
05/03/15 12:57:55地獄を見るほど複雑とも思えないのだが、何を懸念してるんだ?
0946デフォルトの名無しさん
05/03/15 13:03:330947デフォルトの名無しさん
05/03/15 13:17:04作ってるアプリは商用? それとも趣味?
どこかに納品するものならやめておいた方が良いと思うよ。
DoJa4.0でgetColorOfRGBの仕様が拡張された例もあるし、
自前で内部解析しても将来端末で動く保証が何も無い。
後々まで対応迫られるのも嫌だからね。
ってこのあたりはクライアントによりけりか。
老婆心だった。すまん。
0948デフォルトの名無しさん
05/03/15 13:40:32Poly描くとき画面端1ラインおかしいの直ってる?
0949デフォルトの名無しさん
05/03/15 13:53:50アプリ開始時に
Graphics g;
int r_table=new int[256*256*256];
int g_table=new int[256*256*256];
int b_table=new int[256*256*256];
for (r=0; r<256; r++) {
for (g=0; g<256; g++) {
for (b=0; b<256; b++) {
g.setPixel(0,0,Graphics.getColorOfRGB(r,g,b));
i=g.getPixel(0,0)
r_table[i]=r; g_table[i]=g; b_table[i]=b:
}
}
}
とか考えてみた。改良したら使い物になるかもしれん。
0950949
05/03/15 14:00:16つうか、PalettedeImageなんかGIFから読み込むぐらいにしか使わないから、
GIFからパレットデータ抜き出して操作するぐらいで足りないの?
0951デフォルトの名無しさん
05/03/15 14:11:41キャラを暗い状態からだんだん明るくしたり
と細かい数式的な動作をさせたいのです。
パレットそのものを持つと、1*1の面積をもつ16色GIFですら77バイトもかかってしまふ
0952デフォルトの名無しさん
05/03/15 14:52:01マチクタビレタ〜
☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 次スレまだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
0953デフォルトの名無しさん
05/03/15 15:28:57PalettedeImageってパレット替えが遅くないか?
0954デフォルトの名無しさん
05/03/15 15:44:27いや、かなり早い。が、また問題発覚。
D900iが、どんな色数のGIFを読ませても
getEntryCount で256返してきやがるorz もう最悪やこの機種
0955デフォルトの名無しさん
05/03/15 16:02:34死ぬかと思ったorz
そろそろ日記帳状態になってきたから、次スレあたりで続きをまとめて報告するよ。
ノシ
0956デフォルトの名無しさん
05/03/15 16:14:10アプリのバックライトを常にONにしておくにはどうしたらいいのでしょうか?
PhoneSystem.setAttribute(PhoneSystem.DEV_BACKLIGHT, PhoneSystem.ATTR_BACKLIGHT_ON);
を最初にやっても、しばらくすると暗くなってしまいます。
暗くなったら上の命令を。とすると、一瞬だけ暗くなるため画面がちらついてしまいます。
ご教授よろしくお願いいたします。
0957デフォルトの名無しさん
05/03/15 16:26:12アプリ側からはどうしようもない
0958デフォルトの名無しさん
05/03/15 16:47:12ネイティブの「iアプリ設定」の画面を開いて
バックライトの制御を「システム優先」から「ソフト優先」
にすれば制御できた記憶が。
0959デフォルトの名無しさん
05/03/15 17:02:41ネイティブの設定で「ソフトの設定に従う」にしてあれば、
一度setAttributeするだけで永続するようです。
設定になっていない場合は、断続的にsetAttributeするしかなさそうですね。
0960デフォルトの名無しさん
05/03/15 17:05:11ついでに、レジュームがかかると再度設定する必要がある。
0961デフォルトの名無しさん
05/03/15 17:29:44やたら遅かった記憶があるんだが、FF1の戦闘画面みたいに絵が大きくなければ
実用的な速度で動くのかな?
0962デフォルトの名無しさん
05/03/15 17:57:43だが、D900はやはり遅い。
D900i
F900i
N900i
SH900i
P900i
の順番で遅かった。減色具合をリアルタイムに計算させてたのもあるが、
Dはパレット計算&セットだけで25msくらいとった。っておーい。すげー遅いじゃん(;´Д`)
絵の大きさは多分関係ないと思うぞ。パレットなんだし。
0963デフォルトの名無しさん
05/03/15 18:00:49パレットがハードウェアで実装されてないんじゃないのか?
ソフトウェアエミュレーションで遅くなってる
0964デフォルトの名無しさん
05/03/15 18:12:02エミュとD900はRGBそれぞれ8bit
それ以外の900は565の16bitでした。
またDだけか!
0965デフォルトの名無しさん
05/03/15 18:46:29Dで画像のサイズ変えて同じようにパレット操作して
処理にかかる時間が画像サイズに比例するか調べてみた?
0966デフォルトの名無しさん
05/03/15 18:51:200967デフォルトの名無しさん
05/03/15 19:38:150968デフォルトの名無しさん
05/03/15 20:36:13あくまで自分のゲーム用に実験しただけなので、場合によってはスピード逆転とかは十分あると思いますよ
0969デフォルトの名無しさん
05/03/15 20:53:000970デフォルトの名無しさん
05/03/15 21:07:04機種によりました。
P900iはどっちでもスピード(ほとんど?)変わらず。
Dは顕著に遅くなる。他はまぁちびっと。
でも基本はPlettedImageの方が遅いと考えていいと思います。
0971デフォルトの名無しさん
05/03/15 22:30:38アプリをダウンロードする時に、指定するjamファイルをPHPにして、
そのPHPがjamファイルを表示してダウンする事はできますでしょうか?
今、PHPにjamをそのまんま表示させてるんですが、ソフトに誤りがありますと言われます。
但し、その表示されてるもんをjamファイルに貼って正規のやり方で落とすと
落とせます。
ご存知のかたいらっしゃいましたら宜しくお願いいたします。
0972デフォルトの名無しさん
05/03/15 22:55:19HTTPヘッダとかマンドクサイことになりそうだから
素直にperlで吐いたほうがいいと思う。
すくなくともperlのCGIでjam吐かせたら問題なくダウンできたよ。
0973デフォルトの名無しさん
05/03/15 23:00:25レスどうもです。
なんか適当にやってたら1回だけ出来たんです。
それがものすごく単純なコ−ドで。
へぇこんなんで出来るんだって感じでした。
ところがどっこい、ソースをいじって遊んでたら、どうやるか
わからなくなってしまいました(T_T)
激しく後悔。。。
0974デフォルトの名無しさん
05/03/16 00:59:270975デフォルトの名無しさん
05/03/16 02:39:23>jamファイルをPHPにして、
ここの意味が分からん
PHPでjamファイルを作成してそこへのリンクを表示させたいってこと?
何が言いたいか分からん上にスレ違いくさい
0976デフォルトの名無しさん
05/03/16 05:06:360977デフォルトの名無しさん
05/03/16 05:56:03>975>976のやり取りを見れば前半ですら意味が伝わってないことが分かるでしょ?
後半も「PHPにjamをそのまんま表示させてるんですが」や「その表示されてるもんを
jamファイルに貼って正規のやり方で落とすと」とか独自の表現が多くて意味不明。
質問するなら人に伝わるように書かないと期待する回答は得られないよ。
0978デフォルトの名無しさん
05/03/16 08:14:360979デフォルトの名無しさん
05/03/16 08:29:54用語が支離滅裂なんで電波系の人だと思った
つーか、ちゃんと寝なさい
0980デフォルトの名無しさん
05/03/16 08:51:10翻訳するとこんなん↓かしら?
>教えてください。
>アプリをダウンロードする時にJAMファイルの替わりに、
>PHPでJAMファイルの内容を出力させてもダウンできるで
>しょうか。
>
>試してみたら「ソフトに誤りがあります」と言われて
>ダウンロードできませんでした。PHPで出力するテキストを
>JAMファイルに保存してみたら、ダウンロードできました。
引っ掛かりそうなことを順番に上げると、
・文字セット(SHIFT_JISとかEUCとか)
・改行コード
・Content Type
くらいかな。
0981デフォルトの名無しさん
05/03/16 10:55:27やりたいことは、
<object declare id="application" data="jam.php?id=999" type="application/x-jam">
↑です。
文字セットはSJISで出力して、改行コードは\r\n
Content-Typeはapplication/x-jamとtext/plain
で試しましたが旨くいきませんでした。
覚えてはないのですが、適当にやって一度だけ上手くいったので
その後ソースをいじってしまい非常に後悔しております。
0982デフォルトの名無しさん
05/03/16 11:02:55jam.php?id=999
をブラウザで開いて、元のJAMファイルと
バイナリレベルで違いを比べれば分かりそうだけど。
0983971
05/03/16 11:12:33指定した位置にjarがなかったのが原因でした。。。
一応、PHP側のソース載せときます。
<?php
$ref = $_GET['ref'];//ファイル名
$array = file("${ref}");//SJISで保存されたJAMを読み込む。
for($i=0;$i<count($array);$i++)
{
//paramとかネットワーク系の情報を変更したかったらeregiでもしましょう。
print "$array[$i]";
}
?>
終始電波で申し訳ございませんでした。m(_ _)m
0984デフォルトの名無しさん
05/03/16 11:15:04レスありがとうございます。
もう解決しましたが、ブラウザでアクセスすると
きちっと表示されてたんです。
なのに何故?と思っていたら、jarがありませんでした。
お手数かけました。ごめんなさい。
0985デフォルトの名無しさん
05/03/16 12:34:14ソース的には以下のような感じです。
class A extends Panel {
IApplication IApp;
String URL=IApp.getSourthURL()+"xxx.cgi";
}
0986デフォルトの名無しさん
05/03/16 12:40:590987デフォルトの名無しさん
05/03/16 12:41:290988デフォルトの名無しさん
05/03/16 12:56:12あー間違えました。
985のソースのgetSourthURL()の部分はgetSourceURL()です。
0989デフォルトの名無しさん
05/03/16 13:01:30data="jam.php?id=999"
ってとこみると、jam.phpというファイル名だと思うけど、
"xxx.jam"みたいな名前にして
.htaccessでサフィックスjamをserver parsedに設定しといたほうが
より安心できないか?
0990デフォルトの名無しさん
05/03/16 13:04:32IAppが空じゃん
IApplication IApp = IApplication.getCurrentApp();
String URL = IApp.getSourceURL()+"xxx.cgi";
0991デフォルトの名無しさん
05/03/16 13:15:11http://pc5.2ch.net/test/read.cgi/tech/1110946222/
0992デフォルトの名無しさん
05/03/16 13:33:21ありがとうございます。
getCurrentAppしないと駄目なんですね。
でも何故かgetCurrentAppをしていなくても
エミュレーターや一部の実機では動いたりしました。
なんで動いたんだろう??
0993デフォルトの名無しさん
05/03/16 17:01:34Invalid constant pool entry 吐きやがった
double や float などを使ってたり、クラスが壊れてたりしたら出るってどこかに書いてあったが
doubleとか使ってないし、何度もビルドしてるからクラスが壊れてることもないと思うんだが……
double float 以外に、Invalid constant pool entry を吐く変数型とかってある?
0994デフォルトの名無しさん
05/03/16 17:46:10きちんと対処法と、まず試してみるべき行動がきちんとひっかかるじゃないか。
0995埋め
05/03/16 21:53:33http://pc5.2ch.net/test/read.cgi/tech/1110946222/
0996埋め
05/03/16 21:55:040997埋め
05/03/16 22:05:190998埋め
05/03/16 22:11:450999埋め
05/03/16 22:14:07http://pc5.2ch.net/test/read.cgi/tech/1110946222/
1000埋め
05/03/16 22:25:1210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。