CLDC+MIDP+携帯電話用 ..
[2ch|▼Menu]
52:デフォルトの名無しさん
05/02/25 00:35:18
>>50
そういうやり方があるのね・・。確かにjarにするからたいして変わらないのかも
とりあえず、あり

53:デフォルトの名無しさん
05/02/25 01:48:29
BMPのランレングス圧縮にすればそれなりに小さくなる


54:デフォルトの名無しさん
05/02/25 13:14:35
>>51
バリナリとして読み出して、バイナリでレコードストアに書き出せばいいよ。
でもresにjarを入れてビルドすると2重で圧縮かけてことになるよ?
それたっだたtxtのまま入れたほうが面倒でないぞ。



55:51
05/02/25 15:41:02
>>54
ありがとうございます。
なんとかできそうです。
ちなみにresにjarを入れてるのは、テスト用だからです。
実際は、通信から取得する予定です。

56:デフォルトの名無しさん
05/02/25 20:26:46
jargとか使うとstatic final int TEISU = 3;とかは定数に置き換えてくれますか?

57:デフォルトの名無しさん
05/02/25 20:49:59
>>56 意味がわからない。static final intはSunのコンパイラなら
最初からインライン展開してくれるけど?

58:56
05/02/25 22:35:10
>>57
それを聞いて安心しました。

59:デフォルトの名無しさん
05/02/26 00:24:05
おれは不安になったw

60:デフォルトの名無しさん
05/02/26 02:10:52
>59
でーじょーぶだそ。いくつものファイルに渡ってその定数を参照してるならともかく、
MIDPの世界でMIDletのサブクラスとCanvasのサブクラスの二つ以外に
クラスなんて作るはず……ないよな? orz

61:デフォルトの名無しさん
05/02/26 02:14:40
結構それの他のクラス作ったことあるけど意外と平気みたい

62:デフォルトの名無しさん
05/02/26 05:36:44
昔public static finalそのままでjavac通すとclassファイルがやたらでかくなった記憶が・・・
それでjavacを信用せず自分でプリプロセッサ通してたんだけど、最近のは大丈夫になったの?

定数展開されるなら、今度は逆に、
TEISU=3でコンパイルしたclassとTEIS=4でコンパイルしたclassを混ぜれないことになるのか。
依存関係をいちいち書くのもめんどいんで、毎回全部リコンパイルしなきゃいけなくなるなぁ、まぁ知れてるけど。

63:デフォルトの名無しさん
05/02/26 07:37:05
インライン展開されるが、クラスファイル中にstatic final intは残る

static final int a=1;
System.out.println(a);

static final int a=1;
System.out.println(1);

だめじゃんw


64:デフォルトの名無しさん
05/02/26 11:39:03
Vodafone用のJAVAアプリについて質問です。
携帯折り畳み時、スリープ等を用いて電池の消耗を
防ごうと思ったのですが、携帯を折り畳むと自動的に
JAVAアプリが停止する(※携帯電話自体の仕様)ので、
携帯折り畳み時に電池の消耗を防ぐようなプログラムを
作成しても無駄ということですか?


65:デフォルトの名無しさん
05/02/26 11:47:32
>>64
JAVAアプリを動かすより動かさない方が電池の消耗を防げる。

66:デフォルトの名無しさん
05/02/26 12:14:23
>>65
え?
というか、JAVAアプリの停止中(※再び再開可能な状態)って、
JAVAアプリは動いていない(全てのスレッドが停止状態)と
考えてよいのですか?




67:デフォルトの名無しさん
05/02/26 13:59:05
携帯に既に一時中断する機能があるのに何を作りたいって?
それとvodafone用ならVアプリと表記しろよ。名前が変わってどれだけたってんのよ

68:デフォルトの名無しさん
05/02/26 18:03:49
>>64
Thread.sleep()で電池が持つようになるわけない
VM上で動いてるということを理解すべし


69:デフォルトの名無しさん
05/02/26 21:12:24
みんな親切だな
こういうのは一言でいいんだよ

>無駄ということですか?
Yes

70:デフォルトの名無しさん
05/02/26 22:07:23
>>69
おまえのような奴ばっかだったら何の発展もしない罠

71:デフォルトの名無しさん
05/02/26 22:26:22
70=質問者

72:デフォルトの名無しさん
05/02/27 00:03:24
みなさん、「System.gc()」は使用してますか?

73:デフォルトの名無しさん
05/02/27 00:21:48
Runtime.getRuntime().gc()ならたまに使うけど

74:デフォルトの名無しさん
05/02/27 00:30:20
同じ事

75:デフォルトの名無しさん
05/02/27 10:10:48
>73
CLDC の API 見ると、すぐにGCしてくれるんじゃないかって
期待したくはなるがな。


76:デフォルトの名無しさん
05/02/27 11:54:09
GCって自分である程度の間隔でコールした方がいいの?
APIリファレンスとか見てると、Java Virtual Machineが自動的に
やってくれるという事が書いてあったのだが。


77:デフォルトの名無しさん
05/02/27 12:21:43
GCの話はこのスレやiアプリ開発のスレでもよく出てくる
もし暇があるならこのスレpart1からざっと眺めてみるといいかも

78:76
05/02/27 14:56:04
>>77
他のスレも見てみます。

↓それと、GCに関して詳しく書いてあるページもありました。
URLリンク(www.netgene.co.jp)


79:デフォルトの名無しさん
05/02/27 21:22:28
先生方頼みがある。
WTK2.2でRecordStoreに200KBのデータを書き込んでみるアプリを
作ってデバグしているんだけど、RecordStore#closeRecordStoreで
170秒も止まっちゃう。ハードディスクのアクセスランプはその間真っ赤。
まあ200KB書き込みを見直せというのは置いといて、対処法とか知ってる
人頼む。ほんとどうしたもんか。


80:デフォルトの名無しさん
05/02/27 23:10:39
>>79
普通に実行する分には大丈夫なんすか?
デバッガに問題ありそうな気がするので、その辺の環境書いてホスィ。
って自分今始めてWTK22で試してみようと思ったけど
KToolBarのDebugの使い方ワカンネェ・・。Eclipseでブレイク置いてとかしか・・。

81:デフォルトの名無しさん
05/02/27 23:20:15
MIDlet-Data-Size:はちゃんとしてる?

82:デフォルトの名無しさん
05/02/28 05:58:54
>>81
してなかったらしてなかったで、例外吐くだけのような気が。


>>76
ガベコレタイミングの問題だと思う。
ガベコレ始まると最悪数秒くらいスレッドが止まっちゃうので、
「んなタイミングですんなボケ」という要求があるときはこまめにgc、
そうじゃないならほっときゃいい、必要なときにやってくれる。

でもgcを記述しても本当にガベコレしてくれるかどうかは結局VM次第。
確実なのはガベコレが必要ないように、
つまりインスタンスはかならず使い回し不必要に新しく作らない、
てな対処しかない。

関係ないかも知れないけど、VのC4型の場合コンパクションしないとか明示されてるんで、
ガベコレでメモリ回収の必要があるようなプログラムを書いてると、
そのうちメモリが足りなくなってしまう可能性があるわな。
まぁそこまで継続して動くアプリなんてケータイじゃほとんどないけどね。
最悪Vアプリを再起動すればおしまいだし。

83:デフォルトの名無しさん
05/02/28 13:29:41
J-PHONEのコンパイルでこんなエラーが出たのですが対処方法がわかりません

ご教授お願いいたします

C:\mobiledev\VAppli\test>preverify -d classes -classpath c:\J-PHONE-SDK\stubclasses.zip tmpclasses
Error preverifying class test1
java/lang/NoClassDefFoundError: javax/microedition/lcdui/Canvas

84:デフォルトの名無しさん
05/02/28 15:30:48
>対処方法
1.訳す
2.意味を考える
3.調べる
これで解決

原因不明のエラーじゃないんだからさ
ご丁寧にエラーメッセージ出てくんだからさ

85:デフォルトの名無しさん
05/02/28 16:19:10
英語なんかよめるかボケ

86:デフォルトの名無しさん
05/02/28 17:51:09
>>85
ほんならおまいは一生「なでしこ」でも使ってろ!

83のエラーなんか初心者がよくやる
 1.J2SEかV開発ツールのパスの設定間違い(見た感じ怪しい
 2.プロジェクト名とかクラス名とか良く分かってない
だと思うわけで、もう初歩中の初歩で無視されても仕方ないレベル。
何を読みながら作ってるのか知らんが、その過程が分からんと
こっちもどう説明していいものやら。

87:デフォルトの名無しさん
05/02/28 18:34:48
すいませんありがとうございます。


C:\mobiledev\VAppli\test>javac -d tmpclasses -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java

C:\mobiledev\VAppli\test>preverify -d classes -classpath C:\V-appli_SDK_121\lib\stubclasses.zip -d classes tmpclasses

C:\mobiledev\VAppli\test>jar cmf C:\mobiledev\VAppli\test\bin\test.jar C:\mobiledev\VAppli\test\bin\MANIFEST.MF -C classes .
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:383)
at java.util.jar.Manifest.read(Manifest.java:167)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:124)
at sun.tools.jar.Main.main(Main.java:904)


で、こうなったわけで、、、、、教えてくださいエロい人

正直これは英語斜め読みしてもまったくわかりません。。

88:86
05/02/28 19:08:50
>>87
とりあえず3つ確認しておきたいのだが、
 1. 83=85=87 なのか
 2. 1だとすれば83とパスが違う気がするが気のせいなのか
 3. 2だとすれば87は何を説明してるつもりなのか
の3つにまず納得のいく説明しろ。
んで、
オイラが86で挙げた原因の2点を確認するために
 1. 開発環境(使用ツール、パス)と、それをどのサイト・ガイドを参考に設定したのか
 2. 作ろうとしているアプリのプロジェクト名・全クラス名
を書け。話はそれからだ。
これも書けない(書きたくない)っていうならカエレ。

89:デフォルトの名無しさん
05/02/28 19:27:26
1.はいそうです。

2.えっと実際にはアプリの名前が入っているパスなのですが恥ずかしいので
  testに変換して書き込んでます、test1とtestの実際の差異はありません、すいません

3.javacでclassファイルを作れて、それをpreverifyして携帯用のclassを作成できました
  ですが、その事前検証済みのclasファイルからjarファイルを生成できません
  ということを言いたかったのです。

1.開発環境はj2sdk1.4.2_04です
javaコンパイラのパスは C:\j2sdk1.4.2_04\bin\javac.exe
jarのパスは         C:\j2sdk1.4.2_04\bin\jar.exe
stubclasses.zipのパスは C:\V-appli_SDK_121\lib\stubclasses.zip

2.プロジェクト名はtestで統一させてください、すいません、クラス名は
test.class
gameselect.class
getNetData.class
MainMenu.class
Texts.class
bet0.class
bet1.class
bet2.class
bet3.class
bet4.class
bet5.class
bet6_7.class
です、お願いします


90:デフォルトの名無しさん
05/02/28 19:28:26
追記

test.classの部分に実際のプロジェクト名が入ります

91:86
05/02/28 20:30:19
>>89
88で聞いたのは、V-appli_SDKに_121が付いてるとか、
そもそも83ではpreverifyなのに87で「jarでエラー」になってる所だ。
同一人物なら何で違うのかなってな。はじめから変えたって書けよ。
で、
開発環境はj2se1.4.2_04,Vツール121,コマンドプロンプト,でいいか?
多分preverifyの記述が87はおかしい。83が○( _121 が無いが)。
そこでちゃんとclassesにクラスが作れてない気がするので
classes、ついでにtmpclassesにちゃんとファイル出来てるか確認して。
あと、
なんやらクラスが多い(通常は2個程度)が、MIDPは素人じゃないの?
とりあえず初歩的なプログラムで環境確認してからの方が楽だと思うよ。

92:デフォルトの名無しさん
05/02/28 20:36:30
すいませんありがとうございました

tmpclassesとclassesを確認して

jarのパスをいじったらjarファイル作成されてました、お手数おかけしました

MANIFESTファイルの設定がどうのってエミュレーターに怒られますが

そんくらい自分で調べてアレします、ありがとうございました、エロい人

93:デフォルトの名無しさん
05/02/28 20:45:40
俺クラス12個も作ってた ora


94:デフォルトの名無しさん
05/02/28 21:21:08
最終的に容量が収まるなら何ら問題ない。
作業効率が上がるなら10個でも20個でも作る。
それこそ class Point { int x, y; } でも作る。
開発半ばを越えて容量が気になりだしたり、不要かなと思った時点で
クラスをまとめたり配列に置き換える。こんな方針でやってる。

95:92
05/02/28 21:26:05
でもコンスタントプール幾らなんでも取りすぎですよね

容量気になりだしたらクラスをくっつけてお引越し

96:86
05/02/28 21:42:48
>>93
いや別にクラス多いのがダメだと言うつもりは無かったッス。自分も最近は多い。
ただ、Vアプリの開発環境を整えてる段階っぽかったので
そこで複雑なアプリはどうよ?っていう意味です。

あと91でpreverifyおかしいかもとか書いたが別に問題ないかも。
-dが2個あるのが正直アレって感じに見えた。
自分はこの辺ツール(kjxツールとかEclipse)に任せてるからホントは良くシラネ。
とりあえず自分で調べてみる事はすごく重要。超がんがって!

97:76
05/02/28 22:08:01
>>82
詳しく解説していただきありがとうございます。
できるだけガベコレが必要ないような作りに
して行きたいと思います。

98:デフォルトの名無しさん
05/03/01 00:15:40
Vアプリ(JSCL1.2)には、JpegPlayerというクラスがありますが、
このクラスを使うメリットって何ですか?
JPEG画像を表示するだけなら、とりあえず「Image.createImage」を
使っておけばいいと思うですが。

99:デフォルトの名無しさん
05/03/01 09:51:45
Vアプリ(JSCL1.2)でFormにChoiceGroupを乗っけて使ってるんですが
V602SH、603SHで(256kVer.2から)挙動が変わって困っています。

具体的にはChoiceGroupにフォーカスがくるとListの一番下がされるようになり
Listの先頭にあるカーソルが消えた(実際には画面外の上部にある)ように見えて
しばらく↓ボタンを押さないとカーソルが画面に出てきません。

ChoiceGroupの項目数が少ない場合はOKなんですが、項目数が増えて画面に全てが
表示しきれない場合に挙動が変わってしまいます。

601SHまではフォーカスがくるとListの先頭からの表示になっていたので全然
問題なかったので、どう対処したらよいのか…

何か対処法はありますでしょうか?複数のうちから1つだけ選択するインタフェース
にしたかっただけなので特にChoiceGroupにこだわってはいません。
アドバイス等よろしくお願い致します。

100:デフォルトの名無しさん
05/03/01 10:56:31
>>99
256kVer.2てP6型のことか?だったらSystem.getProperty("microedition.profiles")
でJSCL-1.2.2かどうか見て処理を分ければいいんじゃないかな。
それと「ありますでしょうか?」なのに「致しますです」ではないんだな。

101:デフォルトの名無しさん
05/03/01 11:19:26
>>98
ImageのJPEGサポートはMIDPの仕様外だから。

というのと、MediaPlayerで統一的に各メディアを表示するためだな。

102:デフォルトの名無しさん
05/03/01 21:22:29
始めまして、Vアプリを作成してエミュレータで起動させるテストをしているのですが
エミュレータで起動する瞬間に以下のエラーで強制終了してしまいます

一番最初に実行される場所でSystem.out.print("test");と出力して
どこのステップまで実行されているか確認をしたかったのですが
それすらも表示されず対応方法に困っています。。。

どなたかご教授お願いいたします



************** BOOTED EMU **************
----- MIDlet class name: test
----- MIDlet test creating.
cannot run: test
java.lang.ClassNotFoundException
Application EMERGENCY termination. (-1)

103:102
05/03/01 21:36:43
コンパイル時になんらかの失敗をしているとおもうのですが
なにぶん初めてなもので全く原因が特定できません、、、

MANIFEST.MF

MIDlet-Name: test
MIDlet-Vendor: test
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-1: test,,test

test.jad

MIDlet-Jar-Size: 29216
MIDlet-Jar-URL: test.jar
MIDlet-Name: test
MIDlet-Vendor: test
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Network: Y
MIDlet-1: test,,test

104:デフォルトの名無しさん
05/03/01 21:39:01
コンパイルのバッチファイル

javac -d tmpclasses -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java

preverify -d classes -classpath C:\V-appli_SDK_121\lib\stubclasses.zip -d classes tmpclasses

jar cvfm C:\dev\test\bin\test.jar C:\dev\test\bin\MANIFEST.MF -C classes/ .


105:デフォルトの名無しさん
05/03/01 21:58:03
ここは>>83-92をコピペすべきか?

106:デフォルトの名無しさん
05/03/01 22:06:27
test.java の中に test クラスが無いんだろう
あるいは test.java のコンパイルに失敗したまま test.jar だけ作ってる
つうーかバッチってなんだよ・・・

107:デフォルトの名無しさん
05/03/01 22:09:10
test.javaのクラスはこれです

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class test extends MIDlet{
public void startApp()
{
Main m = new Main(this, 0);
Display.getDisplay(this).setCurrent(m);
}
public void pauseApp(){}
public void destroyApp(boolean b){}
}

クラスは存在するはずなんですが・・・・

108:デフォルトの名無しさん
05/03/01 22:14:46
ok

109:デフォルトの名無しさん
05/03/01 22:15:31
で、コンパイルもOKだと思うのですが、でもClassNotFoundExceptionが出てしまうのです。。

C:\dev\test>javac -d tmpclasses -bootclasspath C:\V-appli_SDK_121\lib\stubclasses.zip src\*.java

C:\dev\test>preverify -d classes -classpath C:\V-appli_SDK_121\lib\stubclasses.zip -d classes tmpclasses

C:\dev\test>jar cfm C:\dev\test\bin\test.jar C:\dev\test\bin\MANIFEST.MF -C classes/ .
マニフェストが追加されました。
classes/./ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
classes/./test.class を追加中です。(入 = 659) (出 = 356)(45% 収縮されました)
classes/./Main.class を追加中です。(入 = 4173) (出 = 2212)(46% 収縮されました)

C:\dev\test>pause
続行するには何かキーを押してください . . .




110:98
05/03/01 22:38:30
>>101
なるほど。レスありがとうございます。

111:102
05/03/01 22:45:51
誰か助けて。。。。。

112:デフォルトの名無しさん
05/03/01 22:49:36
>>109
とりあえず確認のため、出来たJar(test.jar)をzipにリネームして解凍してみたら?
解凍すると出来るtestフォルダにtest.classがあれば動くはずってことになるが・・。
つーか、
なんか83と同一人物である雰囲気とか感じちゃうだが・・。キノセイダロウカ。

>>106
バッチは〜.batで、テキスト形式でコマンド書いておけば、
バッチファイルダブルクリックで一連のコマンド実行してくれるシロモノ。

113:デフォルトの名無しさん
05/03/01 22:58:41
すいません実は>>83と同一人物です。。。。

なんか解凍中にエラーが発生してます。。。
これはコンパイルに失敗してるんですかね


〇 C:\Documents and Settings\ore\デスクトップ\test.zip - 解凍を開始します。
 〇 META-INF\ - 正常に解凍されました。
 × META-INF\MANIFEST.MF - アーカイブファイルが壊れている可能性があります。
 × classes\.\ - 同じ名前のフォルダが存在するため、解凍できません。
 〇 classes\.\bet0.class - 正常に解凍されました。
 〇 classes\.\bet1.class - 正常に解凍されました。
 〇 classes\.\bet2.class - 正常に解凍されました。
 〇 classes\.\bet3.class - 正常に解凍されました。
 〇 classes\.\bet4.class - 正常に解凍されました。
 〇 classes\.\bet5.class - 正常に解凍されました。
 〇 classes\.\bet6_7.class - 正常に解凍されました。
 〇 classes\.\gameselect.class - 正常に解凍されました。
 〇 classes\.\getNetData.class - 正常に解凍されました。
 × classes\.\test.class - アーカイブファイルが壊れている可能性があります。
 〇 classes\.\MainMenu.class - 正常に解凍されました。
 × classes\.\Texts.class - アーカイブファイルが壊れている可能性があります。
エラーが発生しています。




114:112(実は86)
05/03/01 23:09:27
>>113
やっぱりね(同一人物件と解凍の両方の意味で)。
jarコマンドの最後が classes/ になってるけど / いらないんじゃないか?
「〜を追加中です」の部分が本来のフォルダ名(classes/test.classとか)に比べ
何か(ていうか / ./ の部分)多いから、変にフォルダ構造が出来たんだと思う。

115:デフォルトの名無しさん
05/03/02 04:39:52
>C:\dev\test\bin\MANIFEST.MF -C classes/ .
>マニフェストが追加されました。
>classes/./ を追加中です。(入 = 0) (出 = 0)(0% 格納されました)
>classes/./test.class を追加中です。(入 = 659) (出 = 356)(45% 収縮されました)
>classes/./Main.class を追加中です。(入 = 4173) (出 = 2212)(46% 収縮されました)

ここがヘン
>(入 = 0) (出 = 0)(0% 格納されました)



116:デフォルトの名無しさん
05/03/02 07:41:13
とっととテスト用プロジェクトを丸ごとどっかにうぷれ。
あと、テストを動かすなら2個からやれとあれだけいわれてるのにまだやってないのかよ。
その末がメッセージ全部コピペじゃ、まじめに答えてる人が気の毒すぎる。

こんなペースでやってりゃ、まともなの作るのに1年以上かかる。

117:デフォルトの名無しさん
05/03/02 13:15:49
StorageConnectionでテキストを読みたいのですが
エミュレーターでファイルを指定するときも

StorageConnection conn = null;
conn = (StorageConnection)Connector.open("file:///ms/test/test.txt");

でいいのでしょうか?
また、このように指定した場合どこのフォルダーが基準になるのでしょうか?


118:デフォルトの名無しさん
05/03/02 13:20:10
なぜ自分で試そうとしない?

119:デフォルトの名無しさん
05/03/02 13:53:37
掲示板に張り付いてる奴は所詮この程度

120:デフォルトの名無しさん
05/03/02 23:19:41
P5を3G携帯で動かす方法ってどこかに載ってます?
個人ではまだむりですかね?

121:デフォルトの名無しさん
05/03/02 23:36:30
■2005/02/02 (水) の日記参照
URLリンク(www.diary.ne.jp)

ここによると3Gは色々と悲惨みたいね

122:デフォルトの名無しさん
05/03/03 07:27:39
バッチでてんぱってる人へ。
URLリンク(potter.s5.xrea.com)
ここのは参考になるかな?
批判されまくりだがまぁガンバレ。

123:デフォルトの名無しさん
05/03/04 05:16:57
java\utilの中見てもList.classがないのですが
携帯アプリでListは使えないの?

使う方法があれば教えてください

124:デフォルトの名無しさん
05/03/04 07:32:23
>>123
MIDPのドキュメントくらいちゃんと読め。
javax.microedition.lcdui.List

125:デフォルトの名無しさん
05/03/04 18:22:55
開いたhttpコネクションを閉じずにアプリを続けたらどうなる?
なんかゲームは動いてるのにアプリマークが点滅視点だけど

126:デフォルトの名無しさん
05/03/04 18:49:48
自己完結、乙。

127:デフォルトの名無しさん
05/03/05 04:09:37
Vアプリエミュレータから、サンプルを動かそうとすると、
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.5', but '1.3'/'1.4' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.
とおこられるんだけど誰か対策しらない?
1.5がインストールされてちゃだめなんだろうか
1.4も入ってるんだが、、ちなみにレジストリのCurrentVersionを1.4にしたら、エミュレータ自体が起動しなくなるんだが。


128:デフォルトの名無しさん
05/03/05 04:54:58
MIDP2.0の仕様書(midp-2_0-fr-spec.pdf。関係ないけど、なんで韓国語版があって
日本語版がないんだ?) を眺めてたんだけど、かな〜り痛いね・・・

>>120
これまではjadファイル中に、
MIDlet-OCL: JSCL-1.0
みたいな記述をしてたけど、3Gではこれが別の書き方に変更されている可能性が大。

[根拠]
MIDP2.0の仕様書の435ページにMIDletの属性の定義に関する仕様が書いてあるけど、そこには、
Any application-specific attributes that do not begin with MIDlet- or MicroEdition-
という記述がある。
つまり、MIDP2.0で定義されていないMIDlet属性のパラメータ名称は、
MIDlet- や MicroEdition- で始まる文字列であってはならない、ということになったみたい。
で、MIDlet-OCLというのはJSCL独自のパラメータなので、MIDP2.0仕様に準拠するために名前を変えたんじゃないかと。


>>121
3Gが悲惨というよりも、MIDP1.0からMIDP2.0への変更に完全上位互換性がないのが問題のような。
たとえば、Canvas.repaint()とかDisplay.setCurrent()が非同期で動作するように変更されてる。
ちょっと凝ったアプリは処理を見直さないと駄目かも。欝だ・・・


129:デフォルトの名無しさん
05/03/05 08:26:00
>>127
両方入ってるならコンパネのJavaPlug-inで使うランタイム1.4を指定してやれば?

130:デフォルトの名無しさん
05/03/05 10:35:27
>>128
シャープとNECはその辺の互換がないのを問題と認識していて
902SH,802SH,802NはMIDP2.0とMIDP1.0をデュアルで搭載してる。
だから"動かすだけ"であれば今までのjadで動くはず。

それでも一筋縄ではいかないというのが>>121のお話し

131:デフォルトの名無しさん
05/03/05 22:01:52
>>127
JREの1.5を削除したら動く。
JDK1.5は残しといて大丈夫そう

132:デフォルトの名無しさん
05/03/06 17:45:12
>>130
そんなことはしてないって…。MIDP2.0だよ〜。


133:デフォルトの名無しさん
05/03/06 18:19:38
どっちだよw

134:デフォルトの名無しさん
05/03/06 20:05:10
>>130
今までのjadで動かないから120のような質問が出てくるのでは?
それに、シャープとNECの携帯にMIDP1.0と2.0がデュアルで載っているという根拠は?


135:デフォルトの名無しさん
05/03/07 22:09:53
ちょい質問。
J-SH53にデフォで入ってる答えてミッフィーの音声認識って
どうやってんの?
どっかに仕様とか出てんの?

136:デフォルトの名無しさん
05/03/07 22:25:21
>>135
>>2からダウンできるP5のエミュの中のJAVADOCの中に書いてある

com.j_phone.io.VoiceRecognition
com.j_phone.io.VoiceRecognitionDictionary
interface VoiceRecognitionListener(interface)
あたりを読めば

137:デフォルトの名無しさん
05/03/09 14:18:04
Vアプリを作成してるのですが、resに格納されているtxtを表示したいのですが、
どうしらいいのでしょうか?どなたか教えてください。

String pass = "resource:///" + filename;
is = Connector.openInputStream(pass);

ここからどうしていいか全然わかりません。

138:デフォルトの名無しさん
05/03/09 22:21:57
>>137
vodafoneのサンプルのなかにStorageConnectionってのがあるから、
それ見てみましょう〜。

139:デフォルトの名無しさん
05/03/10 01:00:54
resって、KToolbarで作るプロジェクトの、jarに同封するリソースファイル類っていう認識でいいんだよね?
getResourceAsStreamじゃダメなの?

ところでresource:///って何?

140:デフォルトの名無しさん
05/03/10 01:30:14
結局、130は知ったかぶりが適当なことを言っただけ?
紛らわしいことして何が楽しいんだか。

141:デフォルトの名無しさん
05/03/10 02:25:21
ただ、シャープとNECはJSCLに対応してるから、互換性が高いのは確か。

142:デフォルトの名無しさん
05/03/10 03:23:28
でもそのままじゃ動かないらしいんだよねぇ。
純粋にMIDP1.0オンリーなら動くらしいけど。

143:デフォルトの名無しさん
05/03/10 07:00:08
簡単な文字を表示したり線を引いたりするアプリを作ってみたのですが
エミュ上では普通に表示されるのに実機で動作させると描写するラインが太いです
これを細くする命令とかあるんでしょうか?

144:デフォルトの名無しさん
05/03/10 09:50:47
>>143
JADファイルに、
MIDlet-Application-Range: 0,0
を追加。

145:デフォルトの名無しさん
05/03/10 11:30:04
>>141-142
MIDP部分の互換性に問題が(ry

>>144
それも3Gでは、ダ(ry


146:デフォルトの名無しさん
05/03/10 12:29:01
3GでStrageConnectionみたいのはあるのかい?

147:デフォルトの名無しさん
05/03/10 22:03:26
>>144
dクス

148:デフォルトの名無しさん
05/03/11 09:06:27
サーバーから画像を落とす処理を行ってるのですが、画像が化けてしまっています。
エミュ上では問題ないのですが、何が原因かわからないでしょうか・・・

149:デフォルトの名無しさん
05/03/11 09:11:20
さっぱりわかりません。

150:デフォルトの名無しさん
05/03/11 12:16:11
>>148
Imageを落とすわけじゃなくbyte[]だろ?
画像云々というよりbyte列を検証してみればいいジャマイカ。
人間の髪の毛が黒かったのが金髪になったとかの変化なら面白いけど
どうせ単に画像生成失敗してるだけだろ?
1度にGETできるサイズは10KB程度だったりする部分じゃない?

151:148
05/03/11 14:05:31
byte列で確認したところ、エミュと実機では値が違いました。
画像サイズは5KBほどなのでサイズは問題ないと思うのですが・・



152:デフォルトの名無しさん
05/03/11 15:06:05
3DのVアプリを作成してみたいので、勉強するための書籍やサイトを教えてください。

153:デフォルトの名無しさん
05/03/11 15:11:00
>>152
URLリンク(www.google.com)

154:150
05/03/11 15:46:09
>>148
じゃあアレだ。エンコードかかってるんだ。
自分の場合servlet経由でjpeg送るとき、octet-streamでうまくいってるから、
.htaccessとかでそのファイルにこんなMIMEタイプ指定すればいいと思う。

>>152
3Dはまずツールが高いので手を出しにくいと思う。とりあえずここは読んどけ。
URLリンク(www.saturn.dti.ne.jp)

155:152
05/03/11 18:40:21
>>154
どもです。

156:デフォルトの名無しさん
05/03/12 07:05:40
アプリタイトルを全角にすると???となってしまいます
どうすれば全角文字のタイトルが付けれるのでしょうか?

157:デフォルトの名無しさん
05/03/12 08:42:30
>>156
UTF-8で保存
XPのメモ帳なら保存時に指定できる

158:デフォルトの名無しさん
05/03/12 09:01:54
>>157
できましたー。ありがとー

159:デフォルトの名無しさん
05/03/13 11:41:28
RecordStoreに自身のjarを保存するにはどうすればいいですか?
createImageでjar内のpngが読み出せるのだから方法があると思うのですがうまくいきません

160:デフォルトの名無しさん
05/03/13 14:23:23
>159
何のために?


161:デフォルトの名無しさん
05/03/13 20:06:12
>>159
目的のjarをサーバに置いといてダウンロードしてRecordStoreに格納すれば?
それをやったところで>>160が言う通りだけど

「createImageでjar内のpngが読み出せる」ことを引き合いに出してる意味がわからない
「RecordStoreに自身のjarを保存(しようと)する」ことと何の関連があるの?

162:159
05/03/13 22:08:30
>>160
>>161

根本的に何か間違ってるみたいですね
createImageのようにjar内にデータファイルを格納して
プログラムから読み出したいのです

163:デフォルトの名無しさん
05/03/13 22:22:15
>>162
質問の仕方が悪いと思うんだが…
どういう手順でどういう結果が欲しいのか
順を上げて書いてくれないとアドバイスしようがないと思われ。
RecordStore内のjarを読み出したいって言いたいの?

164:159
05/03/13 22:54:48
>>163
えっと、
createImgeのようにプログラムの入っているjarから
データを読み出したいのです

流れは

makeで
jar fu test.jar game.datとしてpng同様に格納し

プログラム側で
InputConnection con = (InputConnection)Connector.open( "jar://test.jar/game.dat",Connector.READ, true );
//InputConnection con = (InputConnection)Connector.open( "/game.dat",Connector.READ, true );//←だとjava.lang.IllegalArgumentException: no ':' in URLとなる
InputStream in = con.openInputStream(); //←ここでjava.io.IOException: Fail to open RecordStore. test.jarが起きる
byte[] buf = new byte[1024];
in.read( buf);
}catch(Exception e){
 System.out.println( e );
}finally{
 if( con != null ){
  try { con.close(); } catch (Exception e) {}
 }
}

こんな風になってます


165:163
05/03/13 23:19:42
>>164
RecordStore関係なくないかw
リソースへのInputStreamはgetClass().getResourceAsStream()から
取得できるはずだけど…
jar内まで読み出せるかはわかんね。
っていうかjar内にjarを格納するのはどうかと思うが…

166:159
05/03/13 23:47:02
>>165
in = getClass().getResourceAsStream()で無事開きました!!!
ありがとうございます

RecordStoreは全然関係ないのでしたか・・・・orz

167:デフォルトの名無しさん
05/03/14 00:04:42
単にjarの中のファイルを読み込みたかっただけかYO!
今すぐMIDPの入門書買って来い

168:161
05/03/14 00:05:33
ようするに質問は
 「ビルドしたときにjarに入れたgame.datというファイルをプログラム内で読み込みたい
  どうやればいいか」
ということだったのだな。
そして
 「jarに入れたpngはcreateImageで読み込めるけどgame.datは読み込み方が分からない」
ということを伝えたかったのだな。>>163=165乙。

169:デフォルトの名無しさん
05/03/14 05:20:06
>>128
今まで意識してなかったけど、
MIDP-1.0の時からユーザー定義の属性には
「MIDlet-」から始まる名前は付けられない仕様ですよ??
だから「MIDlet-OCL〜」は別にボダ独自ではないのかも

170:デフォルトの名無しさん
05/03/14 07:32:30
年齢高くて未経験者は採りづらい。
ってか、スキルに自信あるなら、未経験でも経験者だって嘘ついてもばれないので
実際、面接とか受けるときは、ばれない嘘はついてもよし。
一応、応援してるのでがんばってはみろ。

171:170
05/03/14 07:32:52
ごめん誤爆った。

172:デフォルトの名無しさん
05/03/14 13:13:42
スレリンク(appli板:623番)
>V603SHではアプリ1回の起動ごとのレコードストアに書き込むデータが約40kbyte以下
>でないと終了時にエラーが出てしまう。
これって本当ですか?100KBくらいレコードストア使ってるけどCPさんから連絡ないよ?

173:デフォルトの名無しさん
05/03/15 00:03:34
レコードストアってどのくらいのサイズまでいけますか?

174:デフォルトの名無しさん
05/03/15 00:05:45
>>173
>>2

175:デフォルトの名無しさん
05/03/15 10:05:18
先輩方こんにちは。いつもお世話になります。
RecordStore は「任意のnバイトから、nバイト読み込む」のはムリっすか?
(docomo の spad ライクに)。
100K のデカイrecordstoreに任意にアクセスしたいのですが、
丸ごとbyte[]に読んで、いじって、書き戻す、しかないでしょうか。ヒープが不安。



176:デフォルトの名無しさん
05/03/15 11:18:53
>>175
レコード作る時点で区切っといたら?そこがスクラッチとの違いで利点じゃない?
多分ファイルごとにバイト列があって、結合してるとかだと思うけど、
ファイル毎にレコード作れば特にバイト長とか気にしなくていいし楽だと思うよ。
あと、デカイのはレコードストアじゃなくてレコードでしょ?ミス?マジボケ?

177:デフォルトの名無しさん
05/03/15 12:27:23
>>176
>多分ファイルごとにバイト列があって、結合してるとかだと思うけど、
そんな感じです。
結合済みの 100K のバイナリをHttpでダウンして保存、
各ファイルはヘッダのアドレス情報を元にアクセスしてます。
(DoJa から移植なので今のところはこうなってます。)
>レコード作る時点で区切っといたら?
上記の部分を書き直さずに(マクロとか)で済むと幸せだなあ、と。
リニアにアクセスできないものか、と。

Http から落とした時点で別のレコードにして保存するのも考えてみます。
レスありがとう。

178:デフォルトの名無しさん
05/03/15 20:02:08
ボダでの半透過方法を教えて下さい

179:デフォルトの名無しさん
05/03/15 20:09:20
>>178
JSCL1.2以上だったらcom.j_phone.util.GraphicsUtilを使おう。
getPixelで色を取得し、色をミックスした後にsetPixelする。遅いのでお勧めできない。

180:デフォルトの名無しさん
05/03/15 20:36:21
BMP限定になるけどTexture使ったほうがはやいよ

181:デフォルトの名無しさん
05/03/17 08:45:25
今までJBuilder7 + MobileSet3.01でボダ向けJavaの勉強をしてて、
携帯をV902SHに替えたので、MIDP-2.0をいじる為に、新しいwtkを落として来たのですが、
同じ環境でMIDP-2.0の開発は可能ですか??


182:sage
05/03/17 19:44:58
Vアプリ作ろうとしたんですが
下のようなエラーがでます。
javaファイルの置く場所ってsdk1.3.1\binの下に置いちゃ駄目なの?

C:\>javac -bootclasspath c:\v-appli_sdk_122\lib\stubclasses.zip -g:none *.java
エラー: *.java を読み込めません。
エラー 1 個

183:デフォルトの名無しさん
05/03/17 23:20:49
current directoryとは何かから説明しないといけない時代になったのか。

184:デフォルトの名無しさん
05/03/17 23:52:03
Vアプリですから・・・

185:デフォルトの名無しさん
05/03/18 00:19:44
>>182
まずはWindowsのコマンドプロンプトの使い方を調べ。
これじゃC:\がカレントパスだから
C:\*.javaが見つからないと怒られている。

186:デフォルトの名無しさん
05/03/18 00:19:57
>>182
そのエラーの場合で一番簡単な回避方法
C:\に*.javaをおきましょう

187:デフォルトの名無しさん
05/03/18 07:04:10
>>182
もっと簡単な解決方法
C:\>cd sdk1.3.1\bin
C:\sdk1.3.1\bin\>javac -bootclasspath c:\v-appli_sdk_122\lib\stubclasses.zip -g:none *.java


188:182
05/03/18 12:17:17
パス通してるからC:\>javac -bootclasspath…でいいと思ってました。
C:\sdk1.3.1\bin\>javac -bootclasspath…としないとだめなのね。
みなさまありがとうございました、解決できました。

189:デフォルトの名無しさん
05/03/20 00:53:44
Vアプリでファイル読み込みをしているんですが、大きいファイルで落ちてしまい困っています。
エミュ上のメッセージボックスには
Uncaught exception java/lang/OutOfMemoryError
とあります。
StrageConnectionを開き、サイズを取得、その後空きメモリを調べて
2KBほど余裕があった場合にサイズ分メモリ確保しているのですが落ちてしまいます。
落ちない場合もあります;;
try~catchで囲んでも例外をキャッチできませんし、newの戻り値のnullチェックの前に落ちます。
これ、なんとかなりますか?

190:デフォルトの名無しさん
05/03/20 01:26:07
>>189
OutOfMemoryErrorって言われてんだから2KBじゃなくて
もっと残りメモリに余裕を持たせればいいだけじゃない。

191:デフォルトの名無しさん
05/03/20 01:45:50
>>189
> サイズ分メモリ確保
C++とかじゃないんだし、正確に1KBたりとも誤差なしにメモリ確保とか不可能じゃないかと思うんだが。
OutOfMemoryErrorなんだから、おとなしくメモリ減らせ。
あと、catchするのは、例外(=Exception)じゃなくてエラー(Error)ね。

192:デフォルトの名無しさん
05/03/20 02:03:06
>>190>>191
2KBは間違いで、200KBでした。なんでこれだけ余ってるのに確保できないんですかね。
サイズ分って言うのはファイルサイズ分ってことです。
すいません、例外じゃなくてエラーなんですね;;勉強不足でした。
エラーをキャッチしたところ落ちることはなくなりました。
ありがとうございました。

193:デフォルトの名無しさん
05/03/20 02:11:07
補足。
(空きメモリ) - (ファイルサイズ) が204800B以上のときでも
ファイルサイズ分確保できないことがあるってことです。
でも、落ちないようにできたのでよかったです。どうもでしたm(_ _ )m

194:デフォルトの名無しさん
05/03/20 23:31:01
通信で取得したXMLを扱いたいんですが、MIDP用のXMLパーサってあるんでしょうか?

195:デフォルトの名無しさん
05/03/21 00:27:45
>>194
URLリンク(www.nilab.info)

196:デフォルトの名無しさん
05/03/21 02:17:35
>>194
URLリンク(developers.sun.com)

197:194
05/03/21 11:47:40
>>195-196
トンクスです。

198:デフォルトの名無しさん
05/03/21 23:42:46
あげ

199:デフォルトの名無しさん
05/03/28 00:33:58
3Gまだぁ?(・∀・ )っ/凵 ⌒☆チンチン

200:デフォルトの名無しさん
05/03/28 18:03:37
else if とswitchってどっちが効率的なんでしょうか?

201:デフォルトの名無しさん
05/03/28 19:52:13
容量的にも速さ的にもelse if
できればifオンリー
けど作り方によってはswitchの方が便利なときもあるかも

202:200
05/03/28 22:41:21
>>201
どもです。勉強になりました。

203:デフォルトの名無しさん
05/03/29 05:53:27
>>201
速さはswitchのほうがいいんでない?
とくに数字が連続してる時はテーブルジャンプになるし

204:デフォルトの名無しさん
05/03/29 07:01:30
switchの中身はelse if

205:デフォルトの名無しさん
05/03/29 13:05:30
容量重視→if オンリー
速度重視→else if

こんなかんじでいい?

206:デフォルトの名無しさん
05/03/29 13:52:53
>>205
あと処理コスト一定重視→switch(ただしcase値が連番のときのみ)

207:デフォルトの名無しさん
05/03/29 19:40:56
なるほろ。処理コスト一定重視とかもあるのね。

208:デフォルトの名無しさん
05/03/29 22:12:38
>>204
違うだろ。
case値が連番のときはtableswitchで
ジャンプテーブル作ってくれるからelse ifで一個ずつ
比較するより速いはず。
連番でなくても
The Java virtual machine specifies that the table of the lookupswitch instruction must be sorted by key
so that implementations may use searches more efficient than a linear scan.

URLリンク(java.sun.com)
ここの7.10 Compiling Switchesでも読んどけ

209:デフォルトの名無しさん
05/03/30 01:32:34
一番見やすい奴でいいんじゃないの?
初期機種のアプリなんかもう作らないでしょ

210:デフォルトの名無しさん
05/03/30 12:12:45
700iが30KBだよ

211:デフォルトの名無しさん
皇紀2665/04/01(金) 12:12:04
EZアプリで日本語(UTF-8)のプロジェクト名にするとコンパイルはできるんですがエミュでは動かない

212:デフォルトの名無しさん
int 2ch =05/04/01(金) 20:06:10
>>211
うんそうだね。ガイドにちゃんと制限書いてるしね。で?

213:デフォルトの名無しさん
int 2ch =05/04/02(土) 00:28:59
3Gの仕様公開キタ━━━(゚∀゚)━━━ !!!!!

214:デフォルトの名無しさん
int 2ch =05/04/02(土) 00:50:49
ちょっと見た感じだと
MIDxlet-APIの項目をjadに追加すればいいのかな

215:デフォルトの名無しさん
int 2ch =05/04/02(土) 01:01:51
 ・新機能導入の手引き2004
  〜3GC型端末編〜 Ver1.1.0

を見るといろいろ変わってるねえ。


216:デフォルトの名無しさん
int 2ch =05/04/02(土) 01:13:03
読み進めていくとorzになるね。
画面の同期とか・・・

217:デフォルトの名無しさん
int 2ch =05/04/02(土) 01:27:45
塚さ、ストレージコネクションでのアクセスを推奨するfile:///mc/以下のパスって
SHがOther Documents
NがOther Files
と違うんだが作り分けなきゃいかんの?

218:デフォルトの名無しさん
int 2ch =05/04/02(土) 08:16:27
MIDP-2.0の日本語版リファレンスって公開されてる??

219:デフォルトの名無しさん
int 2ch =05/04/02(土) 08:30:07
俺の記憶には無い

220:デフォルトの名無しさん
int 2ch =05/04/02(土) 11:47:03
jadファイルを書き換えるだけでとりあえずは動くのですか???

221:デフォルトの名無しさん
int 2ch =05/04/02(土) 12:14:20
クラスファイル C:\JSCL122_SDK101\lib\jscl.jar(com/j_phone/ui/FEPControl.class) は不正です。

クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。

削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。

import com.j_phone.ui.FEPControl;


3GでBuildしなおそうと思ったらこんなエラーが・・助けてください・゚・(つД`)・゚・

222:デフォルトの名無しさん
int 2ch =05/04/02(土) 13:30:41
やっぱり通信でエラー出るなぁ・・・<3G

223:デフォルトの名無しさん
int 2ch =5年,2005/04/02(土) 17:09:32
MIDlet-Permissions:
とか追加しなきゃダメなのか。面倒だな。

224:デフォルトの名無しさん
05/04/02 19:14:01
KEY_NUM2とUPがかぶってやがる・゚・(つД`)・゚・

225:デフォルトの名無しさん
05/04/02 20:38:47
エミュだと通信できるけど
端末だと通信できん・・・

226:デフォルトの名無しさん
05/04/03 15:08:32
3G開発環境を作成したが、うまくコンパイルが通らない。

StringBuilderというクラスなんか使用していないのに、
コンパイルすると「ファイル java\lang\StringBuilder.class が見つかりません。」
とかいうエラーが出てきやがる・・・。

StringBuilder.classファイルがどこかにないか探してみたけど、
「cldcapi11.jar」にも「midpapi20.jar」にも「stubclasses_JSCL.zip」にも
入っていません。もう手の打ちようがないので誰か解決方法を教えて下さい。


227:デフォルトの名無しさん
05/04/03 16:00:49
>>226
漏れは2Gの開発環境(JSCL1.2.2)でMANIFESTとJADだけを変えたらうまくいったよ。
エミュレータだけ3G用を使ってる。

228:226
05/04/03 16:20:01
>>227
という事は、Vodafoneのクラスライブラリは、2G開発環境で
使用していた「stubclasses.zip」を使用しているのでしょうか?

3Gエミュレータに同梱されていた「stubclasses_JSCL.zip」を
使用したら、>>221のエラー(クラスファイルのバージョン 49.0 は
不正です。48.0 であるべきです)が発生したので、JDK(J2SE)を
Ver1.4.2→Ver1.5.0へバージョンアップしたら、今度は>>226
エラーが発生するようになったので。


229:デフォルトの名無しさん
05/04/03 18:02:30
3Gで通信に成功した人いる?

230:デフォルトの名無しさん
05/04/03 18:48:29
3GでStorageConnectionに成功した人はいますか?

231:デフォルトの名無しさん
05/04/03 20:30:56
3Gで通信とか成功する以前に、エミュレータ上でまともに動作する
所までいってない。エミュレータが起動した直後にすぐ落ちる・゚・(つД`)・゚・

2Gの頃作ったアプリのjad/MANIFESTファイルをいじってみたが
うまく動かなかったので、まずは"Hello World!"を描画するだけの
アプリを動かそうと試みましたが、それでも動かず・・・。

jad/MANIFESTファイルが間違っているのかなぁと思うのですが、
下記のjad/MANIFESTファイルでどこか間違いでもあるのでしょうか?

・jadファイル
MIDlet-Jar-Size: 44172
MIDlet-Jar-URL: Hello.jar
MIDlet-Name: Hello
MIDlet-Vendor: A
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-1: Hello,,Hello
MIDxlet-API: JSCL-1.2.2
MIDxlet-ScreenSize: 0,0
MIDxlet-Permissions: javax.microedition.io.Connector.http

・MANIFEST
MIDlet-Name: Hello
MIDlet-Vendor: A
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-1: Hello,,Hello


232:デフォルトの名無しさん
05/04/03 21:12:26
>>231
MIDlet-1はなぜかjadにかかないとだめ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4971日前に更新/291 KB
担当:undef