トップページ⇒tech
1001コメント349KB

iモード携帯電話用Java(iアプリ) Part10

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/11/10(木) 15:11:53
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。

※DoCoMo以外は下記スレへ。

CLDC+MIDP+携帯電話用Javaスレッド part 4
http://pc5.2ch.net/test/read.cgi/tech/1108781476/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/

■ iモード携帯電話用Java(iアプリ)まとめサイト
http://ton.my-sv.net/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
http://pc8.2ch.net/test/read.cgi/tech/1117773530/

過去スレ
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/
Part 7 http://pc5.2ch.net/test/read.cgi/tech/1102844217/
Part 8 http://pc8.2ch.net/test/read.cgi/tech/1110946222/
Part 9 http://pc8.2ch.net/test/read.cgi/tech/1120411353/
0237デフォルトの名無しさん2005/12/08(木) 21:34:02
>>236
そもそも何がしたいの?
02382362005/12/08(木) 21:49:40
>>237
単純にただの待ち受けアプリなんですが、アプリボタンを連打するとsleepに移行しない機種があるので、
ふつうはどんな実装にするのかなと思ったんです。
0239デフォルトの名無しさん2005/12/08(木) 22:29:17
>>236
連打すると、非活性のときにsleepしようとする
ことがあるから休眠に遷移しないのでわ。
whileループはどこに書いたの?start()かね。

(1) 連打しないとき
非活性 deactivate()
↓
休眠 sleep()
↓← 活性化ボタン
活性

(2) 連打したとき
非活性 deactivate()
↓← 活性化ボタン
活性
↓
休眠 sleep() ※例外 IllegalStateException
0240デフォルトの名無しさん2005/12/08(木) 22:42:33
>>239
ちなみにスレッドにしてみたのですが、現象は変わりませんでした。
いまはstart()内のメソッドを無限ループさせています。

タイミングによって
deactivate()
←ここで活性化される
sleep()
活性化状態なので例外発生

の部分は考慮していて、try〜catch部分でループするようになっています。

今回の場合は、sleepメソッドを実行してるにもかかわらず、待ち受けに遷移しない+JavaVMの実行自体は止まってるっぽい。という状態になってます。
sleepが素直に例外を吐けば、sleepできるまでループすればいいだけなんですが、止まってしまうので悩んでます。

タイミング的に「sleep→待ち受け→ここで即座にαボタン」でこの現象が起こります。
0241デフォルトの名無しさん2005/12/08(木) 23:03:48
>>240
トレースが出ないことを除けば、動作しているように見えるんだけど。

・JavaVMの実行自体は止まってるっぽい ←sleepできたからVMが止まる
・sleepが素直に例外を吐けば ←sleepが成功したから例外を吐かないのでは

ついでにそもそも、どうしてsleep(休眠状態)にするのかというと、

・携帯を折り畳んだから休眠する
・一定時間、ボタン操作がないから休眠する

だろうから、sleepするために
ループでぐるぐる回すのはAPIの使い方として変な気がする。
0242デフォルトの名無しさん2005/12/08(木) 23:10:46
>>241
whileで回してるのは、deactivate() →sleep()の間に、たまたま活性化の割り込みが入る場合があるから、その対処としてwhileしています。
そもそも、sleepから復帰したらwhileは抜けるし、 通常よっぽど間が悪くなければ例外吐かずに1発で休眠してくれます。

問題なのは、休眠していない(待ち受け状態になっていない)のに、JavaVMが停止してかつ、その時にいっさい例外を吐かない状態があるということなんです。
ショートプログラムを作成してみたので気になるところがあったら教えてもらえませんか?
↓
0243デフォルトの名無しさん2005/12/08(木) 23:14:02
import com.nttdocomo.ui.*;
import java.io.*;

public class Exec extends MApplication {
public void start() {
System.out.println("[start]");
while( true ) {
System.out.println(" >>[loop]");
}
}
public void resume() { }
public void processSystemEvent(int ptype,int param) {
System.out.println("[event]");
while( true ) {
System.out.println(" >>[0]");
try {
System.out.println(" >>[1]");
deactivate();
System.out.println(" >>[2]");
sleep();
System.out.println(" >>[3]");
break;
}
catch(Exception e) {
System.out.println(" >>[err]");
}
System.out.println(" >>[4]");
}
System.out.println("[end]");
}
}
0244デフォルトの名無しさん2005/12/08(木) 23:50:31
>>243
このコードだと、sleepが終わるとまたprocessSystemEventが
呼ばれるだろうから、永遠に休眠状態から出られない気がするんだけど。

トレースが出ないのは、processSystemEvent→processSystemEventの
ループがシステムのイベントキューを占有するからだと思うが。

すまんが漏れにはこれ以上の分析はできん。
0245デフォルトの名無しさん2005/12/09(金) 00:06:49
>>244
なるほど、キューがたまるのか。。。と思って、今度はstart()側に、flagを設定して、flagの状態でsleepしてみたが、状況は変わらなかったです。
processSystemEvent()もsynchronized設定して、他のスレッドから割り込みかからない状態にしてみました(下に書いてみた)

public synchronized void processSystemEvent(int ptype,int param) {
System.out.println("[event]");
flag = true;
System.out.println("[end]");
}

うーん、待ち受けに戻った直後にαボタンを押すのは駄目ってことなのか・・・。
F901iCの場合は、電源を切るしかない状態になってしまうんだけど。。。。
0246デフォルトの名無しさん2005/12/09(金) 00:23:15
>>243
聞きわすれたけど、start()の中に無限ループがあるのは
なんでなの?
0247デフォルトの名無しさん2005/12/09(金) 13:48:10
>>246
ふつうゲームをつくるときに、start()のなかでスレッドを起動するか、そこで無限ループさせるから、それを状況的に再現してるって感じです。
プログラム的にはべつに意味はありません。

いろいろ調べたんだけど、非活性から待ち受け状態に移行した直後にαボタン押すとやっぱり駄目みたい。
メーカー発表あってもいいような不具合だと思うんだけど、最近ドコモなんにも発表しなくなったような・・。
0248デフォルトの名無しさん2005/12/09(金) 15:08:43
経験上、活性から一気に「非活性を経由して待ちうけに至る」という処理は、
不安定っぽいです。で私はこうしてます。

まずイベントハンドラ内でdeactivate()だけ呼んだ後にタイマを仕掛けます。
次にprocessSystemEvent()のWAKEUP_TIMER_EVENTで、
  そのタイマが発火したら(1000msとか一定時間経過後)、
  もう一度deactivate()してsleep()します。
この時processSystemEvent()がMODE_CHANGE_EVENTを受けたら
  無条件でそのタイマーを止めます。

こうするとprocessSystemEventがパラで呼ばれない限り、
deactive()とsleep()の呼び出しがアプリボタン(MODE_CHANGE_EVENT)で分断されるということはありません。
02492482005/12/09(金) 15:13:05
>>248
> 次にprocessSystemEvent()のWAKEUP_TIMER_EVENTで、
>   そのタイマが発火したら(1000msとか一定時間経過後)、
>   もう一度deactivate()してsleep()します。
(中略)
> こうするとprocessSystemEventがパラで呼ばれない限り、
> deactive()とsleep()の呼び出しがアプリボタン(MODE_CHANGE_EVENT)で分断されるということはありません。

ごめん、嘘書いた。 orz

ともかくTimer回して、そっちでdeactivate();sleep()するようにすると安定するよ、
ということだと思ってください。
0250デフォルトの名無しさん2005/12/09(金) 18:10:06
>>249
なるほど。言うとおりにやってみたら安定した。サンクス。
せっかくなので状況をまとめます。
1・休眠→活性化→非活性→休眠→活性化・・・と続けることができるアプリの場合、非活性から休眠まで一定時間がないと落ちる機種がある。
2・無限ループ、スレッドsleepを入れる、キューがたまるから・・・は関係なし。
3・対処として、deactivate後に一定時間おいてsleep。検証では時間の長さではなく、同一スレッドでdeactivate();sleep()としてるのがまずい。
4・待ち受けスケルトン作ってみた。
0251デフォルトの名無しさん2005/12/09(金) 18:13:34
import com.nttdocomo.ui.*; import java.io.*;
public class Exec extends MApplication {
canvas can = null;
public void start() {
can = new canvas();
Display.setCurrent(can);
// 特に意味はありません。ゲーム的なループです
while( true ) { System.out.println(" >>[loop]"); }
}
public synchronized void processSystemEvent(int ptype,int param) {
if( ptype == MApplication.MODE_CHANGED_EVENT ) {
System.out.println("[event]");
((MApplication)IApplication.getCurrentApp()).deactivate();
can.stime.stop(); can.stime.start();
}
}
}
class canvas extends Canvas {
ShortTimer stime = null;
public canvas( ) { stime = ShortTimer.getShortTimer(this,1,100,false); }
public void paint( Graphics g ) {}
public synchronized void processEvent( int ptype, int param ) {
if( ptype == Display.TIMER_EXPIRED_EVENT ) {
try {
System.out.println(" >>[sleep]");
((MApplication)IApplication.getCurrentApp()).sleep();
}
catch(Exception e) { stime.stop(); stime.start(); }
}
}
}
02522482005/12/09(金) 20:58:28
>>251
安定したなら良いんだけど、そのサンプルは微妙に意味合いが違うかも。

ポイントは、同一スレッドでというよりは、
ユーザが起こしたイベント(キー入力とか)のハンドラ内でMApplication.sleep()を呼んではダメで
タイマーなどシステムが起こすイベントのハンドラ内ならOKっぽい。という点ね。
0253デフォルトの名無しさん2005/12/09(金) 23:54:31
>>252
サンプルではキー入力で活性化したときに、タイマーをスタートさせて、そのタイマーイベント時にsleepしてるけど、
そじゃなくてタイマーとかでシステムがおこしたイベントならdeactivate();sleep();がオケーってことですか?
いまいち意図をくみ取れてないみたいですみませぬ
そしてずっと上げ続けたみたでさらにすまぬorz
0254iアプリ2005/12/10(土) 20:49:32
いまだにiアプリでできないんだけど、どうすればいいですか?
ちなみにP901iSつかっていてファミコンをしたいとおもってます。
0255デフォルトの名無しさん2005/12/10(土) 20:59:13
ゲームがしたいなら、ファミコンミニでも買えばよいと思われ。
0256デフォルトの名無しさん2005/12/11(日) 03:02:33
>>254はまず日本語を最履修してもらいたいと思うんだ
0257デフォルトの名無しさん2005/12/12(月) 01:13:41
       ☆ チン        P902〜
                     SD-Binding〜
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< DoJa-4.1開発ツールまだ〜?
      \_/⊂ ⊂_)_ \____________
0258デフォルトの名無しさん2005/12/12(月) 12:55:58
DOJA3.0で作ったアプリをDLしようとすると「ソフトに誤りがあります」と出てしまうのですが・・・
色々調べたのですがPackageURL、AppSizeに間違いを修正してもできません。
原因として他にどういったことが考えられるでしょうか?ご教授お願いします。
0259デフォルトの名無しさん2005/12/12(月) 13:08:54
ありすぎて書くのマンドクセ
公式開発ガイドを嫁。最後のほうにあるから
0260デフォルトの名無しさん2005/12/12(月) 14:49:31
JAMファイルの中身をはっつけるくらいせんかい。
俺らはエスパーか?
0261デフォルトの名無しさん2005/12/12(月) 14:59:57
よし、エスパーの俺が念力集中ピキピキドカン!

>>258
端末が壊れてるっぽい。
0262デフォルトの名無しさん2005/12/12(月) 15:30:16
>>261
愉快痛快なオチだな
0263デフォルトの名無しさん2005/12/12(月) 16:31:13
iアプリからcgiにアクセスしたいんですが、iアプリのDLページと同じフォルダ内にcgiがないと接続できませんよね?
あと、iアプリをDLしたページのあるフォルダの下のフォルダにcgiを設置した場合アクセスすることは可能ですか?
0264デフォルトの名無しさん2005/12/12(月) 16:44:33
>>263
うろおぼえだが同サーバーなら問題なかったはず
少なくとも下のフォルダは大丈夫
詳しくはリファレンスに書いてあるかと
0265デフォルトの名無しさん2005/12/12(月) 21:19:22
SuEXECとごちゃ混ぜになってないか?
0266デフォルトの名無しさん2005/12/12(月) 21:56:36
iアプリで専ブラのようなやつってないでしょうか?
0267デフォルトの名無しさん2005/12/12(月) 22:52:51
>>266
携帯コンテンツ板池
2,3あるはず
0268デフォルトの名無しさん2005/12/13(火) 08:08:54
>>267
おお、マジでサンクス。
ちょっと行ってくる!



そして通信量減らす為に色々と宣伝してくる。
0269デフォルトの名無しさん2005/12/14(水) 09:12:23
>>200
> だからアプリからバックライトやバイブレーションの制御が好き勝手に出来ない端末がある。

これぶっちゃけ余計なお世話なんだよなあ。
長々と考え込むようなパズルゲームとかだと(例えば詰め将棋)
バックライトがついたり消えたりで鬱陶しくてかなわん。端末開発者には再考を望みたいものだ。
0270デフォルトの名無しさん2005/12/14(水) 11:40:53
アプリからではなくて端末メニューの設定でバックライト常にONってできない?
0271デフォルトの名無しさん2005/12/14(水) 21:22:41
そして「電池の消費が速すぎる!なんとかしろ!」と苦情がくる
0272デフォルトの名無しさん2005/12/14(水) 21:34:04
>>270
マニュアルを必死で読みあさったけどないんだ。本気でショボンヌだ。
0273デフォルトの名無しさん2005/12/15(木) 11:13:47
>>272
機種は何を使ってるのだ?
0274デフォルトの名無しさん :2005/12/16(金) 22:26:41
>>>200
>> だからアプリからバックライトやバイブレーションの制御が好き勝手に出来ない端末がある。
>269
>これぶっちゃけ余計なお世話なんだよなあ。
>長々と考え込むようなパズルゲームとかだと(例えば詰め将棋)
>バックライトがついたり消えたりで鬱陶しくてかなわん。端末開発者には再考を望みたいものだ。

これって初めて知ったんで気になったんだけど、好きに制御できないとなると
PhoneSystem.setAttribute()でATTR_BACKLIGHT_ONした後はどうなるの?

基本的にはiアプリでバックライトをONにしてても
ユーザがキーを押してしまったらネイティブで設定されてる秒で
省電力に落ちるだろうけど、iアプリの方で
getAttribute()でATTR_BACKLIGHT_OFFだったらバックライトをONにする
対策も取れなくはないだろうからジャンルによって
iアプリ開発者も考慮してみてほしいね。
02752742005/12/16(金) 22:50:18
>>206
>>何も不思議はない。バックライト制御ができない端末ってことだ。
>
>やはりそういうことなんですね。
>
>>本体側の設定で、バックライト制御の項目が「システム」になってると
>>falseが返ってくるようになってるんじゃないの?
>
> 設定をいろいろ見たのですが、そういう設定が見当たらないのです。

 自分はたまたまSH901iCなんでアプリ作ってみたんだが、
 PhoneSystem.isAvailable(PhoneSystem.DEV_BACKLIGHT)でtrueが返ってきてる。
 ただし、省電力設定の照明時間設定を00秒にしてる場合は常にfalseだった。
 
0276デフォルトの名無しさん2005/12/18(日) 01:02:10
JarInflater in = null;
で宣言しているのですが、なぜかエラーがでます><
importもしているのですが、原因として何かありますか?
教えてくだざい><
0277デフォルトの名無しさん2005/12/18(日) 01:03:24
>276
ちなみに、シンボルを解決できません。てでます
0278デフォルトの名無しさん2005/12/18(日) 01:26:39
ソースを良く見直してみるくらいしか思いつかない(´・ω・`)
0279デフォルトの名無しさん2005/12/18(日) 11:57:59
キモい
0280デフォルトの名無しさん2005/12/18(日) 12:16:14
>importもしているのですが
正しくできている自信があるくらいなら質問すな。
正しくできてないだけ。書け。
0281デフォルトの名無しさん2005/12/18(日) 13:04:55
失礼します。
Java blenderでファイルを圧縮しようとすると「足りないメソッドがあります」で止まってしまいます。
デバッグや圧縮せずに携帯で実機テストを行っても止まったりする事がないのでどのメソッドが足りないのか分かりません。
足りないメソッドを調べる方法はないのでしょうか?
0282デフォルトの名無しさん2005/12/18(日) 13:16:21
>>281
JavaBlenderのページは見てみた?
JavaBlenderのVer1.18aでDoja3.5対応って書いてあるから、
それ以降のDojaを使ってたり、JavaBlenderのバージョンが
古かったりするとダメかも(´・ω・`)
0283デフォルトの名無しさん2005/12/18(日) 13:16:43
リバースエンジニアリングする
0284デフォルトの名無しさん2005/12/18(日) 15:00:12
281です。
Dojaのサイズ確認しました。見事に4.0でしたorz
3.5に入れ替えてもう一度確認しようと思います。
0285デフォルトの名無しさん2005/12/19(月) 10:34:30
ウチはJavaBlenderだと3.5でも何か駄目だったから、
諦めてproguardに変えた。
0286デフォルトの名無しさん2005/12/19(月) 11:33:14
Java1.4を使うとJavaBlenderはダメだぞ。
0287デフォルトの名無しさん2005/12/19(月) 19:11:03
505i以降対応のゲーム作ってます。RPG。
32×32のマップをint[32][32]で表現して、背景色や移動可能、イベントのありなし
などをビット演算で取り出してやってます。

メモリ効率を考えて上のようにやってたんですけど、
>>151以降の話題を追ってみると、
この程度のデータではわざわざビット演算などやってる意味なくて、

int bgColor[][]とかboolean canMove[][]とかを適宜32×32ずつ
用意したほうがいいんでしょか?
0288デフォルトの名無しさん2005/12/19(月) 20:21:58
>>287
自分で実験して確かめるのが一番だと思うよ。
0289デフォルトの名無しさん2005/12/19(月) 21:50:33
ちょっと興味もってJavaBlenderでいろんな環境で圧縮してみた。
Eclipse(jre1.5.0_04使用)でビルドしたファイル→圧縮出来ず。
Doja3.5(j2sdk1.4.2_09使用)でビルド→圧縮可。
Doja4.0(j2sdk1.4.2_09使用)でビルド→圧縮可。
ちなみにDoja3.5と4.0では本当に僅かだが3.5のファイルの方が容量が少なくなった。
それより凄いのはEclipseでビルドしたファイル。
同じソースファイルをDoja単体でビルドすると容量が半分ぐらいになる。
「ターゲットリソースが〜〜〜」って言うメッセージが出てビルドできないヤツは設定の「sun.tool〜〜〜を使用」をチェック。
これでビルド出来るはず。
既出知識ならスマン。
0290デフォルトの名無しさん2005/12/19(月) 23:00:37
>>289
いやいや、ありがたい。ナイス情報

>>287
ビット演算なら複数条件を一括で検索とかできる。
まぁ好みの問題だけど、ビット演算もおおいにアリじゃない?
0291デフォルトの名無しさん2005/12/19(月) 23:12:14
>>289
Eclipseはデフォルトでデバッグオプションてんこ盛りだぞ。
まあそれらを外してもごくわずかだけどeclipseのほうがコードサイズは
大きいけどね。
0292デフォルトの名無しさん2005/12/20(火) 00:12:19
>>289を見ると>>286は誤情報ってことでいいか?
0293デフォルトの名無しさん2005/12/20(火) 11:25:27
>>287
メモリを考えての話ならint配列でいい。
そのデータの持ち方を考えているならビット演算がいい。
(使うときは解答するなりそのままなりで)
0294デフォルトの名無しさん2005/12/22(木) 22:22:39
>>293
データの持ち方ってのがよくわからないけど、
>>290も言ってるように複数条件が絡むような分岐のことかな?
地図に描画する画像と移動不可とイベント有無みたいのは
密接に絡むから、ビット演算でやってもいいのかもね。

>>288
それが一番正しい姿勢だとは思うんだけど、
いかんせんJavaでメモリ使用量なんて低レベルな部分を気に掛けたことが
ないから、どうやって調べればいいのかわからん。

せめてググるにしてもキーワードだけでも教えてたもれ...
0295デフォルトの名無しさん2005/12/22(木) 22:34:00
たぶん誰も本気で気にかけたことがないのでぐぐるだけ無駄だと思うぞ。
アプリサイズならまだともかく。
0296デフォルトの名無しさん2005/12/23(金) 00:13:32
まじで?そんなに逼迫するものでもないのか。めもり。
今、アプリのサイズは8k。まだ気にする領域でもないか・・・
0297デフォルトの名無しさん2005/12/23(金) 00:52:58
まあ、空きメモリしらべたいなら
java.lang.Runtimeあたりのメソッド呼ぶんだろうなあ。
0298デフォルトの名無しさん2005/12/23(金) 13:44:26
いろんな機種で遊んでもらう事を考えて、
505シリーズまで動くかを見る時にメモリ残量は気にするけど、
最近の機種では気にしたことはないな。
最近ので逼迫するようなら自分のソースを見直すよw
アプリサイズは230Kあれば個人作成物くらいなら十分だし。
0299デフォルトの名無しさん2005/12/23(金) 16:40:11
>>297

freeMemory

public long freeMemory()

システムの空きメモリの量を返します。gc メソッドを呼び出すと、freeMemory によって返される値が増える場合があります。

CLDC API に存在したよ ゚∀゚
0300デフォルトの名無しさん2005/12/23(金) 17:05:56
今度時間のあるときに詳しく調べるけど、
>>287あたりは「気にするだけハゲる」という結論に落ち着きそうだ・・・
0301デフォルトの名無しさん2005/12/24(土) 00:59:06
freeMemoryで調べても、P900やN900はメモリー断片化が酷いからなぁ・・
03022972005/12/24(土) 01:57:50
>>299
もちろんそれを想定して言ったんだけど(^^;

>>301
御意。なんとかしてほしいものだ。
0303デフォルトの名無しさん2005/12/24(土) 03:24:22
iアプリでテトリスとかできるなら、マインスイーパーできないかな・・・。
作りたいけど、知識のない私には無理なので
作ってもいいよって人作ってください(;´Д`)
03043032005/12/24(土) 03:40:34
よく探したらあった(;´Д`)
スレ汚しスマソ
0305デフォルトの名無しさん2005/12/24(土) 11:00:54
断片化を考慮した空き容量を取得するメソッドがある。
たしかDoJa4.0から。名前は忘れた。
0306デフォルトの名無しさん2005/12/24(土) 19:07:15
DLしたの2chブラウザしかねえやwww
0307デフォルトの名無しさん2005/12/25(日) 00:29:01
質問失礼します。

iアプリからphpにアクセスし、データをダウンロードしようと考えています。
http://www.hogehoge.or.jp/test/down.php?name=resouse.dat
(上記の様なURLにアクセスし、ダウンロード)

�@HttpConnection con= (HttpConnection)Connector.open(clPath, Connector.READ, true);
�Acon.setRequestMethod(HttpConnection.GET);
�Bcon.setRequestProperty("Content-Type", "application/octet-stream");
�Ccon.connect();
上記がアクセスしているソースなのですが、�Cの段階でConnectionExceptionが出て落ちます。
getStatusで調べたのですが、ILLEGAL_STATE(=1)が返ってきている様です。

DoJa-3.0 Standard API には、
http 接続において、openInputStream, openOutputStream, connect メソッドを、呼び出してはならない状態のオブジェクトに対して呼び出した 場合に発生します。
とあるのですが、connectを使用せずデータをダウンロードする方法ってあるのでしょうか?

レスポンス
Content-Type:application/octet-stream
Content-Length:nameで指定したファイルのサイズ
down.phpの仕様には上記の様に記述してあるのですが、レスポンスの受け取り方が分かりません。。。

よろしくお願いします。
03083072005/12/25(日) 00:31:02
書き忘れました。
リクエストメソッドがGETなのは仕様だそうです。
0309デフォルトの名無しさん2005/12/25(日) 01:14:10
>>307
なんでGETなのにContent-Type設定してるの?
それやるとILLEGAL_STATEかどうか忘れたけど、とにかく例外は発生した覚えが。。
03103072005/12/25(日) 01:23:22
返答ありがとうございます。

>>309
>なんでGETなのにContent-Type設定してるの?
GETだったらContent-Type設定しなくて良いって知りませんでした。。。
�Aを削除したバージョンで明日(昼間のみアクセス可能)試してみます。
結果は後ほど。
ありがとうございました。
0311デフォルトの名無しさん2005/12/25(日) 01:30:55
>>310
Content-Typeってのは、自分が送るコンテンツの型を指定するもんだ。
GETじゃ、自分からはコンテンツ送らないでしょ?
03123072005/12/25(日) 01:42:59
�Aじゃくて�Bでした。

>>311
そういえばそうっすね。。。
03133072005/12/25(日) 01:48:17
>>311
ttp://plusd.itmedia.co.jp/mobile/0104/27/ijava_14.html
多分ココ見たから思い込んだんだと思います。

�B消しただけで取得できるかなぁ。。。
0314デフォルトの名無しさん2005/12/25(日) 02:33:23
GET要求にContent-Typeがあるって話、
過去スレにもあったような。

似たようなところを間違えてるってことは、
APIマニュアルのサンプルプログラムが間違ってるんでしょうか?
03153072005/12/25(日) 17:27:49
�Bを消して試したら今度はHTTP_ERROR(=10)が返ってきました。。。
(前回と同じく�Cの段階です)

なんか遠ざかった気がしまつ(´・ω・`)
もうコリャ納品無理っすわ。。。
0316デフォルトの名無しさん2005/12/25(日) 18:25:52
PHPの出力じゃなくて、
普通のテキストファイルのDLはできてるの?
03173072005/12/25(日) 18:56:12
>>316
返答ありがとうございます。

普通のテキストファイルというのが何を指しているのか、技量が足らず良く分からないのですが、
他サーバーからdown.phpを利用しないダウンロードには成功してます。

HttpConnection con= (HttpConnection)Connector.open(clPath, Connector.READ, true);
con.setRequestMethod(HttpConnection.GET);
con.connect();

こんな感じのソースです。
clPathとjam変えれば良いだけと安易に考えていたのですが、ものの見事にはまりました。。。
0318デフォルトの名無しさん2005/12/25(日) 20:45:20
test.txt
を鯖にUPして、それをDLできるか試せ。

通信でひっかかりやすいポイント。
1・iアプリはiアプリが置かれていた鯖としか通信できない
2・iアプリにデータを渡す時は、Content-Lengthが必要
0319デフォルトの名無しさん2005/12/25(日) 20:46:42
>>>315
>�Bを消して試したら今度はHTTP_ERROR(=10)が返ってきました。。。
>(前回と同じく�Cの段階です)
>なんか遠ざかった気がしまつ(´・ω・`)
>もうコリャ納品無理っすわ。。。

最初はILLEGAL_STATEが出てて、修正したら
HTTP_ERRORが出てるって事は、状況は改善されたと思われ。
通信先(PHP?)はちゃんと期待する反応を返せるのかどうか・・・。
0320デフォルトの名無しさん2005/12/25(日) 21:47:41
先方に聞いちゃいました。。。(恥)
マルチすいません。
03213072005/12/25(日) 21:48:29
>>307 == >>320
03222932005/12/26(月) 12:01:09
>>294
すげー遅レスだがデータの持ち方ってのは判りにくい表現だったな。すまん。
言いたかった事は、セーブデータの事です。

32*32で1024の配列をチップ番号、フラグ番号、当たり判定、とばらばらに保存して
3倍の容量くうよりもビット演算などいれてくっつければ容量へるっしょ。ってことw
ま、くっつけなくても別々にビット演算して小さくして使うってものありだし。

でそれらセーブデータをそのまま使うかビット演算でint配列に解凍して使うかは本人次第ってことで。
メモリを気にする必要はあまりないが、ファイル容量は気にした方が良いってのが言いたいことです。
本体に格納するならともかく、スクラッチパッドにHTTPでダウンする形なら特にね。
0323デフォルトの名無しさん2005/12/27(火) 01:56:01
(,,゚Д゚)∩先生質問です
iAppliToolの「設定」-「ネットワーク設定」の「ADFのURL」
の設定はEclipseを用いた開発の場合、どこで設定すればよいのでしょうか?
03243232005/12/27(火) 02:06:33
ごめんなさい。速攻自己解決しました。
「ウインドウ」-「設定」の
「DoJa4.0 Environment」-「ネットワーク設定」にありました。
すまそ。
0325デフォルトの名無しさん2005/12/27(火) 09:13:19
自己解決した後でもちゃんと回答を書いてるところが良いね。
0326デフォルトの名無しさん2005/12/27(火) 15:21:04
アプリのダウンロードで詰まりました。
N504・・・正常
SH505・・・正常
F2051・・・異常 「ソフトに誤りがあります」と出ました
F2102V・・・異常 「ソフトに誤りがあります」と出ました
P901・・・正常

原因が全くわかりません。。。
正常にダウンロードさせたいのですが、分かる方お願いします。
0327デフォルトの名無しさん2005/12/27(火) 16:25:36
アプリ名の最後の文字が、\\コードを含む二バイト文字。

例えば 十 など。(二バイト目が0x5C)
確か二バイト目が0xA0でもダメだったような気がする。

お勧めは最後に i などの1バイト文字を入れること。とりあえず試してみ。
03283262005/12/27(火) 16:34:29
キタ━━━━(゚∀゚)━━━━ッ!!

>>327
あんた最高!

っつうか、この仕様はちょっとなぁ、、、
0329デフォルトの名無しさん2005/12/27(火) 18:50:12
>>326
ああ、Fね。

(遠い目)
03303092005/12/28(水) 01:35:51
>>315
HTTP_ERRORってのは、200番台以外のレスポンスが返された場合だ。
まずはweb serverのaccess_logとかerror_logを見て、何のレスポンスが返されてるか確認するべし。
そこで400番台とか500番台とかが返されてるなら、iアプリのせいじゃなくて、webサーバの設定のせい。
0331デフォルトの名無しさん2005/12/28(水) 05:54:18
公開されてたDoJa4.1エミュレータで動作検証しようと思ったのですが、
DrawArea = 240x240 と書くとエミュレーターが強制終了します。
DrawAreaの項目を空欄にすると正常動作します。
原因箇所までは突き止めたものの何が悪さしているのかさっぱりです。
解決法などご存知の方おられませんでしょうか。
0332デフォルトの名無しさん2005/12/28(水) 18:39:41
ゲームのデータを保存するのにスクラッチパッドじゃなくて
txtファイルに保存とかだめですか?
0333デフォルトの名無しさん2005/12/28(水) 19:10:36
テキストファイル形式のデータを保存してもいいけど、
結局保存先はスクラッチパッドすよ。
ものすごくかみ砕いていうと、以下のような。

.txt → .jpeg .gif .htmlの仲間。ファイル形式。
スクラッチパッド → CD ハードディスク フラッシュメモリの仲間。保存先。
03343312005/12/29(木) 00:18:30
自己解決しました。
DoJa-4.0までで使っていた自作のエミュレータスキンが問題だったようです。
今まではスキンの設定が lcd_height = 271 だったのですが、
lcd_height = 273 にしないと240x240を確保できないようです。
スレ汚しすみません。
0335デフォルトの名無しさん2005/12/29(木) 20:44:23
質問失礼します。色を指定するとき、
g.setColor(Graphics.getColorOfName(Graphics.WHITE));
と毎回、getColorOfNameをコールするのが速度的に遅く
なりそうなのですが、みなさんどうされてますか?
private final int GW=Graphics.getColorOfName(Graphics.WHITE);
と定数化してみたこともあるのですが、この値は機種依存とも
書かれているのでやめて、最初に
for(int i=0;i<16;i++) $Color[i]=Graphics.getColorOfName(i);
とすべて変数にほりこんでみたりもしているのですが…
こうするのが常識、みたいなものがあれば教えてください。
0336デフォルトの名無しさん2005/12/29(木) 21:07:40
> private final int GW=Graphics.getColorOfName(Graphics.WHITE);
右辺が返す値は機種依存かもしれんが、
上のコードなら機種ごとにとることになるから
問題ないんじゃないかねぇ。

むしろ
> for(int i=0;i<16;i++) $Color[i]=Graphics.getColorOfName(i);
こっちの方が個人的には気持ち悪い。


遅いかどうかはベンチマークをとるのが早いだろうけど
また機種ごとに速度違うかもしれないしなぁ。
■ このスレッドは過去ログ倉庫に格納されています