[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 10:16 / Filesize : 284 KB / Number-of Response : 983
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

CLDC+MIDP+携帯電話用Javaスレッド part 7



1 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:44:32 ]
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。質問は公式資料をよく読んでからにしましょう。

前スレ:
CLDC+MIDP+携帯電話用Javaスレッド part 6
pc11.2ch.net/test/read.cgi/tech/1155174514/l50

過去スレ
携帯JAVAのスレッド
pc2.2ch.net/test/read.cgi/tech/1011977260/(DAT落ち)
CLDC+MIDP+携帯電話用Javaスレッド part 2
pc5.2ch.net/test/read.cgi/tech/1070858996/
CLDC+MIDP+携帯電話用Javaスレッド part 3
pc5.2ch.net/test/read.cgi/tech/1091798483/
CLDC+MIDP+携帯電話用Javaスレッド part 4
pc8.2ch.net/test/read.cgi/tech/1108781476/
CLDC+MIDP+携帯電話用Javaスレッド part 5
pc8.2ch.net/test/read.cgi/tech/1132493827

--
Java一般に関しては:
【初心者】Java質問・相談スレッド88【大歓迎】
pc8.2ch.net/test/read.cgi/tech/1153834996

NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part12
pc8.2ch.net/test/read.cgi/tech/1154336955

>>2-5あたりにリンク集

255 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 02:37:51 ]
今日からSアプリ開発環境を何とか揃えてテストし始めたのですが、
実行すると、
 SOFTBANK_MEXA_EMULATOR11
が無いって言われてしまいます・・・。
インストールしたのはSOFTBANK_MEXA_EMULATOR12だったので、
12を11に書き直せば実行できましたが気持ち悪いです・・・。

これは何かインストールや設定が間違ったりしているのでしょうか。
お手数ですがご回答いただけますと幸いです・・・。

256 名前:255 mailto:sage [2007/08/11(土) 02:39:38 ]
ああ、環境はEclipseを使っています

257 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 03:38:46 ]
>現在、S!アプリ開発環境はMEXA SDK+Eclipseプラグインが一番いいと思う。

「一番いい」とかそんなもん無いよ
個人の技量&価値観次第

>実行すると、 SOFTBANK_MEXA_EMULATOR11 が無いって言われてしまいます・・・。
>ああ、環境はEclipseを使っています

だからほれ見ろこんな人もいる
WTK22一つならこんなつまずきは起こらない

258 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 12:06:31 ]
>>255
>12を11に書き直せば
何を書き直したの?情報量が少なくてよく分からん。
俺は10(FeliCa用)と11を2つとも同じEclipseで使ってるけど、
特に問題起きたことない。

>>257
>個人の技量&価値観次第
当たり前。WTKのが初心者向きかもって書いてるっしょ。
「一番いい」は何らかの評価基準の上にある。

259 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 13:54:55 ]
Eclipseのプラグインがディレクトリ名を10もしくは11って決め打ちにしてるんだろ
で、MEXAの最新版はバージョンが上がっててディレクトリ名が12になってるんじゃないか

260 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:46:46 ]
いや、中身が同じなら適当なフォルダ名でも動く。

261 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:57:39 ]
>>259が正解
フォルダの名前を変えるか
設定のとこの実行パスを指定でフォルダ指定しなきゃいけない

262 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:25:15 ]
ああ、そういうことか。
いつもパス指定してたから、デフォルト実行パスがあるの忘れてた。

>>255
つまり、プロジェクトを作成するときか、
プロジェクトのプロパティー→MEXA Emulator実行パスに、
"SOFTBANK_MEXA_EMULATOR12"のフォルダを指定すればそのまま使える。

263 名前:255 mailto:sage [2007/08/12(日) 02:13:40 ]
皆さんありがとうございました!
MEXA Emulator設定で実行パスを設定したら無事に起動することが出来ました。
プラグインで最新になっているかと思ったのですが、そんな落とし穴があったのですね・・・。

まだまだ初心者ですが、勉強していきたいと思います!


>>258さん
書き直す・・・すみません、情報が不足していました。
フォルダ名を直接変更したら、ということでしょうか。
11が無いというんだから、11にしたらどうなるか?と思ったら起動したのですが、
それだとなんだか気持ち悪いな・・・というところでした。



264 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 20:55:20 ]
誰か>>109に答えてくれまいか
ググってここにきたが、返信は書かれてなくてショボン

265 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:31:01 ]
>>264
APIはない

266 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 22:07:52 ]
>>265
そっか、Dojaからの移植はメンドいな

267 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 23:15:15 ]
なんとかターミナルIDとりたいよね。

iアプリ→S!アプリ移植を半年ほどやってて、
最近はラッパークラスかますだけで大概移植できるようにしたけど、
Phone.getPropertyはいまだ手つかず。

268 名前:デフォルトの名無しさん [2007/08/14(火) 01:47:46 ]
超初心者です。ひとつわからない点があるので、
どなたか教えていただけないでしょうか??
FEPControl.getDefaultFEPControl()を実行すると、
エミュレータのコンソールでjava.lang.NoClassDefFoundErrorが発生します。
パスとか環境の問題だと思うけど、どこをいじればいいのか教えてもらいないでしょうか?
■Eclipse
バージョン: 3.1.1
ビルド ID: M20050929-0840
■Mexa
MEXA Emulator exlips-plugin
バージョン1.0.0
■エミュレータS! Appli MEXA Emulator 1.2
パス:C:\Program Files\SOFTBANK_MEXA_EMULATOR12
■プロジェクト
C:\SOFTBANK_MEXA_EMULATOR12


269 名前:198 mailto:sage [2007/08/14(火) 02:11:46 ]
とりあえずjadファイルをコピペすれ
sageで

270 名前:デフォルトの名無しさん mailto:sage [2007/08/15(水) 00:53:17 ]
>>268
まずはjadに、「MIDxlet-API: JSCL-1.2.2」 追加。
あとはMEXA Emulatorのプロジェクト→端末設定→MEXAオプションの
必要なものにチェックが入ってないとかかなあ。

271 名前:268 mailto:sage [2007/08/15(水) 01:48:12 ]
>>269
>>270

遅くなってすんません!

jadに「MIDxlet-API: MEXA」を追加したら動きました!
環境の問題だとばっかり思ってたんだけど、jadの方だったとは、、

一歩前進しました。
ありがとうございました!

272 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 00:49:30 ]
       ,.ィ , - 、._     、
.      ,イ/ l/       ̄ ̄`ヽ!__
     ト/ |' {              `ヽ.            ,ヘ
    N│ ヽ. `                 ヽ         /ヽ /  ∨
   N.ヽ.ヽ、            ,        }    l\/  `′
.  ヽヽ.\         ,.ィイハ       |   _| 俺は今とんでもない事に
   ヾニー __ _ -=_彡ソノ u_\ヽ、   |  \ 気付いた ソフトバンク
.      ゙̄r=<‐モミ、ニr;==ェ;ュ<_ゞ-=7´ヽ   >  並べ替えると ,馬糞と糞
.       l    ̄リーh ` ー‐‐' l‐''´冫)'./ ∠__ ソフトバンクモバイルを並べ替えると,
       ゙iー- イ'__ ヽ、..___ノ   トr‐'    /    踏ん張ると糞も倍
       l   `___,.、     u ./│    /_これは偶然の一致か?
.        ヽ.  }z‐r--|     /  ト,        |  ,、 何者かの陰謀では ないのか?
           >、`ー-- '  ./  / |ヽ     l/ ヽ


273 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:01:14 ]
Sアプリの jadファイルに記述する MIDlet-Data-Sizeについて質問です。
データサイズを jadファイルに記述しない場合のデメリットってなんでしょうか?

データサイズが記述されている場合は、バージョンアップ時などに
RecordStoreの内容が引き継がれる(前バージョン時のRecordStoreデータが
保障されると解釈してよい?)と、開発ガイドにあるので、データサイズが
jadファイルに記述されていない場合は、その保証が無いのでしょうか?

イメージ的には端末の不揮発性メモリに
(1) jadファイルにデータサイズの記述あり
[アプリデータ……]
[RecordStoreデータ] ← アプリデータとは別の領域に確保される
 ↓
バージョンアップすると
[アプリデータ…………]
[RecordStoreデータ] ← アプリデータとは別の領域に確保されるので安全&拡張可能

(2) jadファイルにデータサイズの記述なし
[アプリデータ……][RecordStoreデータ] ←連続している?
 ↓
バージョンアップすると
[アプリデータ…………][#@%toreデータ] ←連続していたのでデータ壊れて使用できなくなる

という感じなんでしょうか?

保存するデータのサイズがけっこう変動するアプリを作成しているので、
上限をなるべく指定したくないのですが、その考え自体邪道ですか?
やっぱり、考えられる一番大きいサイズを jadファイルに指定するのがセオリー
なんでしょうか。



274 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:26:58 ]
MIDlet-Data-Sizeがない場合、そもそもRecordStoreって使えないんじゃないの?
(単に実機依存なのかもしれないが)

MIDlet-Name, MIDlet-Vendor, MIDlet-Data-Size がすべて一緒の時に始めて、
バージョンアップ時のRecordStoreの内容が保持されるはずなんで、
> 考えられる一番大きいサイズを jadファイルに指定するのがセオリー
と思われる。

MIDlet-Data-Size を書いてない場合 -> RecordStore をそもそも使えない可能性がある
MIDlet-Data-Size がバージョンアップ時に変わってる -> RecordStore を引き継げない or バージョンアップDLできない
仕様に従うならこんな感じか。
細かいとこは実機依存だと思う。

あと、jar/jad/RecordStoreが実機にどんな風に保存されるのかについてはもろ実機依存なんで、
Java開発者が関与すべきとこではない。

275 名前:273 mailto:sage [2007/08/17(金) 10:06:27 ]
>>274
回答どうもです。

エミュや自分の持っている904SHでは、MIDlet-Data-Sizeを jadファイルに
記述しなくても普通に RecordStoreが使えてたので、必要性に疑問を
感じてしまったしだいです。
保存するデータサイズの最大値を調べて、それに余裕を持たせて
記述したいと思います。

それから MIDP2.0なら MIDlet-Data-Sizeは、増やすのであれば
バージョンアップの時にデータを引き継いでくれるみたいですよ。

276 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 00:56:36 ]
SoftBank用のJAVAアプリを作成しているのですが、
描画方向を変更できるメソッドは、存在するのでしょうか?

ワイド画面機種なら、
jadファイルに「MIDxlet-WideScreen: Y」と記述すれば、
横方向(横画面)で描画してくれますが、
これだと、アプリを起動してから、
描画方向を変える事はできません。

アプリを起動してから、描画方向をいつでも変更できる、
何かいい方法はないのでしょうか?


277 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 01:11:41 ]
仮想画面に描いといて、
実画面に出すときに90度回転

278 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 01:17:27 ]
エミュでHTTP通信させたいのですが、プロキシ認証でエラーがでます

java.io.IOException: Error initializing HTTP tunnel connection:
HTTP/1.1 407 Proxy Authentication Required

DojaエミュだとIDとパスワード聞いてきたんですが、MIDPエミュではどうすればいいのでしょうか

携帯アプリ以前の問題でスミマセン

279 名前:276 mailto:sage [2007/08/18(土) 01:19:51 ]
>>277
なるほど!その手がありましたね。
レスありがとうございます。


280 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 14:02:31 ]
ものすごく基本的なことなのかもしれないけど質問

WTKでは問題なく表示されてた画像がMEXAエミュでは表示されないんだが何が問題なんだろう?

WTKでコンパイルしたものをWTKエミュで表示・・・○
それを実機で表示・・・○
WTKでコンパイルしたものをパッケージ化してMEXAエミュで表示・・・×
MEXA SDK+EclipseでコンパイルしたものをMEXAエミュで表示・・・×
それを実機で表示・・・×

試した画像はpngとgifでつ

281 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 14:15:00 ]
パッケージ化というのがどういう操作かわからないから間違ってるかもしれないけど
それぞれできたjarの中の画像ファイルの位置を確かめてみたら?
WTKでコンパイルしたものとは後二者は違ってる可能性が大きいよ
で画像を参照するパスが間違ってて読めてない

あとは画像を読み込んでいるところの例外を捨てずに
ちゃんとSystem.outに出力しておけば
少なくともエミュ上でなら問題の解決の助けになるよ

282 名前:280 mailto:sage [2007/08/19(日) 14:31:03 ]
>>281
おお即レスどうも

パッケージ化ってのはWTKの
プロジェクト→パッケージ→パッケージを作成
でJARファイルとJADファイルを作成する操作のことです

確かに例外をそのまま捨ててましたが、今手元にソースがないのでどうにもなりません
明日また確認してみます

283 名前:281 mailto:sage [2007/08/19(日) 14:52:33 ]
>>282
> WTKでコンパイルしたものをWTKエミュで表示・・・○
> それを実機で表示・・・○

このときjarってできてるよね。jadもさ。
じゃないと実機で動かないだろうから。
それを

> WTKでコンパイルしたものをパッケージ化してMEXAエミュで表示・・・×

これと比較すれば一発でわかるような気がしている。



284 名前:デフォルトの名無しさん [2007/08/20(月) 18:18:47 ]
903Tでダウンロードエラーが起きます。
どうもJADのMIDlet-Nameが長くて弾かれているようなんですが、

Vodafone903TってJADは全角も半角カナも全て3Byteなんでしょうか?
もしくは、技術資料には32Byteと書いてるけど、本当はMIDlet-Nameの最大は12Byte?
知ってる人いたら情報下さい。

ちなみに3G端末他30機種程は正常ダウンロードできます。

285 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 18:45:16 ]
UTF-8の仕様
たいていの日本語文字は3バイト

286 名前:デフォルトの名無しさん [2007/08/20(月) 23:25:49 ]
3か4だな

287 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 08:22:47 ]
そうなんですか。
ありがとうございます。

288 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 00:46:14 ]
sアプリで、スプライトを使うメリットは軽い(早い)こと?
ガリガリ動かすアクションとかシューティングとかで無かったら、
image と graphics.util で作るのもアリですかね?
なんかイマイチスプライトのメリットがわからん・・・

289 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 11:21:16 ]
昔のP4くらいで使われていたものだから
今の機種でスプライトを使うメリットはないよ

290 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:14:44 ]
どなたかわかる方助けてください。

JSCL1.2.2で、RecordStoreに格納したJarファイルの中身を取り出したくて、Development Guideの通りに
Connector.open("Jar://ファイル名/リソースファイル名", Connector.READ);
という風に記述したのですが、
1・この"ファイル名"というのはRecordStoreの名前のことでしょうか?
2・取り敢えず実行してみると、
javax.microedition.io.ConnectionNotFoundException: The requested protocol does not exist
というエラーが出ます。
プロトコルが存在しないと言われてますが、設定で追加したりできるものなのでしょうか?

291 名前:290 mailto:sage [2007/08/23(木) 14:30:14 ]
自己レスですが、Jar://〜が使えるかどうかは端末によりけりなんですね。

ということは、大量の画像ファイルをネットからダウンロードして
アプリ中に差し替えるような仕様だと、ファイルを1つずつダウンロードして
ちまちまRecodeStoreに保存する方法しか無いんでしょうか。

DojaならJarInflater()で一発なのですが・・・

292 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 14:48:33 ]
Dojaってアプリでjar圧縮できるんだ?いいね
同じ事をやりたいんなら自前でアーカイバを作ればよい

293 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 15:54:48 ]
初心者丸出しなのですが、画像の読み込みについての質問です。
少しずつテストして行って画像を表示させるテストで行き詰まりました。
3時間ほど調べてみたのですが解決方法が見当たらなかったので・・・


//絵の表示
public void paint(Graphics g) {
 if(image == null){
  try {
   image = Image.createImage("/test.gif");
  }
  catch (IOException e) {
   e.printStackTrace();
  }
  g.drawImage(image, 0, 0, g.TOP|g.LEFT);
 }
}

この際のtest.gifはどこに配置したらいいのでしょうか?
構成は
Test
 src
 tmpclasses
となっています。
tmpclassesに置くとnotfoundとは言われなくなるのですが、
やはり
 java.io.IOException
 java.lang.NullPointerException occurred in ImageCanvas.paint(Graphics), ignored.
のエラーで表示されてくれません。



294 名前:293 mailto:sage [2007/08/23(木) 16:35:30 ]
すみません、解決しました・・・
MexaだとGIFは使えないのですね(汗)

ただ、配置場所に関してはやはりtmpclassesになっています。
これはeclipseの設定だと思うので探してはいるのですが・・・。

295 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 18:05:17 ]
>>294
srcフォルダと同じ階層にresフォルダ作ってそこにリソースを入れる

296 名前:293 mailto:sage [2007/08/23(木) 19:47:21 ]
>>295
それはやったことが・・・と思ったら、
ソースとしてフォルダを作ってなかったようです(汗)
新規>ソースフォルダでやったところに入れたら自動的にtmpclassesにも行きました。

ありがとうございます!

297 名前:288 mailto:sage [2007/08/23(木) 22:32:36 ]
>>289
返事遅くなったけど、ありがとう!
これでどっちで作ったら良いか迷いを断ち切れた!

298 名前:278 mailto:sage [2007/08/26(日) 22:17:30 ]
どなたか>>278に答えてもらえませんか

299 名前:278 mailto:age [2007/08/26(日) 22:27:53 ]
ちなみにWTKでもMEXAエミュでもです

300 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 01:03:53 ]
リソースフォルダに格納した
ファイルのサイズを簡単に求める方法はないでしょうか?

外部に保存されているファイルなら、
StorageConnectionの「getLength()」を使えば、
簡単にファイルサイズを求められるのですが・・・。

実際にリソースデータを読込めば、
当然そのリソースのサイズは判明しますが、
「リソースデータを読込む前」に、
リソースデータのサイズを取得する方法があれば、
是非ご教授お願い致します。


301 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 01:20:39 ]
InputStream#availableは?
一応読み込む前ではある。

302 名前:300 mailto:sage [2007/08/27(月) 02:14:40 ]
>>301
おお!リソースのサイズが取得できました!
レスありがとうございます。

303 名前:デフォルトの名無しさん [2007/08/29(水) 00:39:06 ]
GraphicsUtilのgetPixelを使ったら、SecurityExceptionになりました。JADファイルになにか設定がいるのでしょうか。



304 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 02:43:02 ]
電源ボタン押下によりアプリを終了する時、
自動的にデータ(※約10KB)をメモリカードに保存するようにしたいのですが、
destroyApp()内で外部メモリへデータを書き込んでいると、
エラーが発生して、アプリが落ちてしまいます。

destroyApp()内で重い処理をしている為、
エラーが発生していると思われますが、
どうにかして、destroyApp()がコールされるタイミングで、
外部メモリへデータを保存する事はできないのでしょうか?


305 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 04:27:24 ]
>>304
機種の実装依存だから無理

306 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:02:47 ]
>>303
GraphicsUtilはMEXA Unit2に該当するクラスだから
東芝とシャープ以外の端末では使えない。


307 名前:306 mailto:sage [2007/08/29(水) 10:06:18 ]
あ、今回の場合違うな。
Canvasクラスのpaintの引数で来るGraphicsのインスタンスや
GameCanvasのgetGraphicsメソッドで取得するグラフィクスを対象とする
getPixelは使用できないというのが正しい。

308 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 10:53:04 ]
>>305
ってかやるなって書いてなかったっけ?

309 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 11:36:07 ]
destroyAppでストレージいじるの?
それは知らんが、MIDPのdocにはdestroyAppは速やかに終了しろと書いてあったが、
ストレージいじるのは時間かかり過ぎだな。

実装側で一定時間すぎたら強制終了するからストレージぶっ壊す可能性もあるからやるなとベンダーのdocに書いてるかもね。

310 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 11:56:49 ]
電源ボタン押下によるアプリを終了はユーザーの責任だから
無視してかまわんだろ

311 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 12:15:19 ]
携帯の電源ボタン終了はちゃんとした終了プロセス実行しないから強制終了だしね。
スマートフォンやPDAはまた違うが。

312 名前:304 mailto:sage [2007/08/29(水) 23:11:38 ]
>>305>>308>>309>>310>>311
みなさんレスありがとうございます。
ベンダーのdoc等を見たら、
確かに一定時間(5秒ぐらい)過ぎたら、
アプリが強制終了すると書いてありました。

destroyAppで重い処理を行うのはやめます。


313 名前:デフォルトの名無しさん [2007/08/30(木) 18:34:26 ]
J2ME Wireless Toolkit と Fote for Java 3.0, Community Edition を使って携帯ゲームを

作ろうと思ってるんですが Fote for Java 3.0, Community Edition ってどこでダウンロード

出来るんですか?Sunのページを探しても見つからなくて…

分かる人居れば教えてください



314 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 19:23:36 ]
×Fote
○Forte

315 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:17:48 ]
外部メモリにデータを書き込む時、

sc = (StorageConnection)Connector.open("保存データファイルのフルパス名");
os = (OutputStream)sc.openOutputStream();
os.write( data, index, length);

と記述すると思いますが、
何故か「os.write( data, index, length);」の
第二引数(index)の値を変えても、
書き込むデータの開始位置が変わらない・・・。

indexは、data[]の何番目の配列から書き込むか、
という指定をするためにあるものですよね?

動作環境は、SoftBankのMEXA エミュレータですが、
MEXA エミュレータのバグでしょうか?それとも私のミスでしょうか?


316 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:54:46 ]
>>313
なんでForte?
もう公開してないんじゃないの多分

317 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 18:45:48 ]
3GC用にゲームを作っているのですが、
903T、902T、803Tで確認したところアプリが途中で止まってしまいます。
動かしているimageなどが止まってしまうので、
ソースが全く走っていないことになると思うのですが、
なにかしらキーを押すと何事も無く動きだします。

気になる点はimage作成や、image、soundのロード、そしてdisposeなどを
繰り返していくと残りメモリがどんどん減っていくことです。

頻繁にgcしているのですが、メモリがどんどん圧迫されている感じです。
ある一定の値でメモリ使用は増えなくなります。

メモリ不足で端末の挙動が不安定になっているのかな?と思いますが
なにか心当たりありませんでしょうか?

318 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:50:57 ]
>>317
基本的にgcはjavaが勝手にやってくれるから自分でやんなくてもいい。
メモリが減ってくのはimageとかに使ってるからじゃないの?
当たり前だけど、gcしても使ってる分のメモリは解放されないよ。

System.gc();
Runtime.getRuntime().freeMemory();
で残りメモリ量を見ながら、無限にメモリ使っていくプログラムを組んで、
その機種が残りメモリいくつでメモリエラー出るか確認してみるといいのでは。

319 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 06:22:05 ]
>>318
imageをロードしても、disposeをしてその後gcが成功すれば
そのimage分のメモリは解放されるはずですよね?
(gcがちゃんと行われるかどうかは微妙というの聞いたことがありますが・・・)

他の端末では、ロード、disposeで使用した分のメモリは元に戻るのですが、
上記端末では元に戻らずロードの度に累積していくので、
端末によってgcがされにくいなどあるのかなと思いました。

無限にメモリ使っていくプログラムで確認するのはいいかもしれません。
やってみます。

320 名前:318 mailto:sage [2007/09/02(日) 13:03:14 ]
東芝機種とかでgcがちゃんと行われるか微妙って話は聞いたことあるけど、
自分でgc入れたらメモリエラー解決したって話も聞いたことないんだよね。
そもそもgc行われるか微妙って話自体が結構眉唾だし。
いずれにせよ確証があるわけではないけどね。

俺も昔メモリエラー出たとき、色んなとこにgc入れてみたけど、
その時の結論は自分でgcやっても意味無い。だった。

903T、902T、803Tは使ったことあるけど、その時は特に問題なかったよ。
imageとsoundは常に全部保持してたからdisposeは使ってなかったけど。

あと、Image.dispose()ってDoJaじゃん。disposeって具体的に何?

321 名前:317 mailto:sage [2007/09/02(日) 13:53:45 ]
>>320
そうですか・・・。
今までの経験上、javaのgcはホントにメモリがなくなったときはされるけど、
それ以外ではされたりされなかったりタイミングがあやふや、
という感覚だったので一定のタイミングで自分でgcを行っていました。

今回はさらにdisposeの直後に呼んだけど無駄だったという状況でした。


>あと、Image.dispose()ってDoJaじゃん。disposeって具体的に何?

あ、書き方が悪かったですね。具体的にはnull代入です。

image imageA;
〜〜
imageA = null; //使用した後nullでdispose

ただ、試しにimageA.dispose();をしたらエラーが起きず使用できたのですが、
Dojaじゃないのにどうしてコンパイル通るのか謎でした・・・。

322 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 06:39:30 ]
System.gc()は必ずしもヒープの解放をする訳ではないです。
Javaヒープの空き容量を見ながら、GCをおこなうかを判断
することは、JavaVMの実装によりあります。

T芝のJavaVMの実装は分からないけど、VMの内部に参照が
残っていた場合には、参照が切れずにGCの回収対象になら
無い可能性もあり得る。。。が、それはVMの不具合かな。

まぁ、System.gc()で必ず回収されると思わない方が良い。
System.gc()よりは、"new byte[でっかいサイズ]" の方が
確実にGCを発生させられますよ。


323 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 11:43:40 ]
iアプリの場合のものですが、
sアプリでもメモリの断片化が起こるのかも?

参考URL
ttp://appli-style.com/technique/bug/bug_04.html



324 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 11:57:28 ]
普通に考えてメモリの断片化が起きない環境なんて無いのでは?

325 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:34:34 ]
>>324
ちょっと言葉が足りませんでした
メモリの断片化が起きたときに
System.gc()を呼んでも
デフラグをしてくれないのが問題かも?
ということです

326 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:17:56 ]
Javaのgcはコンパクションが含まれるのが仕様だと思い込んでたんだが、実際はVMの実装依存なのか?

327 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:50:04 ]
長期的に見てメモリの断片化が不利要素になる用途向けのVM実装なら
メモリコンパクションやってるけどそれらはサーバー向けVMか民生外のVMのお話か。

CLDC HotSpotどころかJITすら積んでないインタプリタで動いてる既存のKVMの雲のまた上の存在が持つ機能。

話の引き合いに出すのがそもそも間違い。

328 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:03:07 ]
SoftBankのTipsにはJSCL-1.0.Xの端末はメモリのコンパクションを行わないと
書かれているので、現在の端末では普通にメモリのコンパクションを行っていると思われr

329 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:17:30 ]
>328
>現在の端末では普通にメモリのコンパクションを行っていると思われr

「SoftBankのTipsにはJSCL-1.0.Xの端末はメモリのコンパクションを行わないと
書かれている」からといって、何の関係もない

330 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:36:05 ]
ドコモだったら901i以降は全機種コンパクション搭載なんだがな。

331 名前:317 mailto:sage [2007/09/04(火) 02:53:52 ]
アプリが止まるバグはメモリが解放されていないのが原因ではないか?
と言い出した者ですが、原因は別にありました。

わけあって
Tread.sleep(1);
を定期的に行っていたのですが、903T、902T、803T端末では
Tread.sleep(10);未満を行うとスレッドにロックがかかると公式資料にありました。
超初歩的で馬鹿みたいな原因でお恥ずかしい限りです。
様々な意見ありがとうございました。

ただ、アプリが止まるバグは解消されましたが、
相変わらずメモリはガンガン減っていくわけで今も原因を解明中です。

ロード&解放を繰り返さず、最初に大きくメモリをとったり、
System.gc()を頻繁に繰り返しても駄目と聞いたので減らしたりしましたが、
特に効果はありませんでした。




332 名前:322 mailto:sage [2007/09/04(火) 06:58:18 ]
>>322で書いたのは、コンパクションも含めたGCの話。
いまどきの携帯向けのJavaVMはコンパクションも普通に実装されてる。


333 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:28:26 ]
所詮は実装レベルの話であってVMの仕様レベルの話ではない。
仕様で保証されなければ使えないのと同じこと。
ただでさえ、本当に互換性テスト通ってんのか?ってな実装だらけなのに。

あとDojaなんてjavaじゃない。



334 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 23:09:55 ]
Dojaは確かにぶっちぎりで糞だが、そもそも携帯JavaがJavaの紛い物。
Javaが不完全で未熟な言語であることは、アスペクト指向やリフレクションという
裏口を使うフレームワークが百花繚乱なことからも明らかだが、携帯Javaは
容量面でも機能面でもその裏口封じてるんだからな。

335 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 02:16:46 ]
>アスペクト指向やリフレクションという
裏口を使うフレームワーク
はjavaが不完全なんじゃなくてたまたまそのパラダイムを実現するのにjavaという言語仕様を使ってるだけ。

フレームワークレベルの話と言語仕様レベルの話をごっちゃにするな。
フレームワークの話をするならjavaのMVCは確かに中途半端だが。

336 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 22:27:16 ]
む、むつかしい・・・
オレみたいに、javaの勉強がてら
携帯アプリを作ってみよー!
てなノリはダメってことか?
今までアセンブラ、basic、Cだったから
オブジェクト指向はこいつが初なんだが・・・

337 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 22:39:06 ]
言語習得が目的なら
「自分はケータイJavaを学ぶのではなく
 Javaを通してあくまでオブジェクト指向を学ぶんだ」
ということを意識していればok

ケータイJavaに振り回されないようにな

338 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 11:36:20 ]
オブジェクト指向って考え方だから、Cでもなんでも実装方法しだいで
それっぽくならない?
Cの上手い人のソース見ると、だいたいオブジェクト指向に通じる
設計思想で作られてる気がする。

339 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 14:57:28 ]
キー入力を検知するのに、keyPressed を使わずに、
ループで JSCLのDeviceControl.getDeviceState() を使い、
0→1の変化点を検知したら処理を行うように作ってみましたが、
早い速度でキー連打するとかなり取りこぼしてしまいました。

試しに無限ループで 単純に getDeviceState() の値を表示するようにして
キーをぽんぽん押してみたら、ON → OFF が早すぎると
getDeviceState() の値が0のまんまでした。
素直にキー入力の処理は keyPressed たちを使っておけってことでしょうか?
それとも、エミュレータ上では遅いとか・・・
(まだ実機上でテストできない環境なので、検証できません)

>>152-154 を見てどっちを使おうか迷っていたし、
組み込み系に慣れてるからポート入力→変化点検出→処理
みたいな流れで作りたかったんですが・・・

340 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 17:25:42 ]
keyPressedでフラグ立てるなりステートいじるなりしてメインループないでそれの値を監視する。

341 名前:339 mailto:sage [2007/09/06(木) 21:25:35 ]
>>340
一応、そちらの方向で検討しておりますが、
>>153 や公式で書かれているとおり、keyReleased() がこなかったとき、
離しているのに押されっぱなし(フラグたちっぱなし)、という状態が懸念されます。
実用上、特に問題無い程度の発生頻度なのでしょうか・・・

やはり普通の方は JSCL (getDeviceState()) は、あまり用いられないのですか?
別件ですがエミュ上でテストしたところ、同じキャラを表示するテストで
SpriteCanvas の sprite より drawRegion の方が早かったのですが・・・

342 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 22:59:38 ]
keyPressed が来たらフラグ立てて、 getDeviceState で取ってきたやつに重ねればいいんでない

343 名前:339 mailto:sage [2007/09/06(木) 23:22:27 ]
>>342
なるほど、ありがとうございます。
そちらの方向で検討してみます。

まぁ趣味でやるだけですし、そこまで神経質に
ならなくても良いのかな・・・>キーこぼし



344 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 00:46:56 ]
S!アプリでアレンジメール(デコメ)を送ろうと思ったのですが、
アプリ上で実現するためにはどうすればよいでしょうか?

アレンジメールはHTMLメールとして表現されているようなのですが、
MailDataではHTMLメールには対応していないようです。
HTMLをそのままbodyに書いてみましたが、そのまま文字として表示されました。
仕方ないので自分でHTMLをsetAttachedDataでTYPE_HTMLとして送信しても
結果は同じくただの添付ファイル扱いでした。クリックしたらブラウザが起動します。

困ってしまいました。どなたかアドバイスお願いします。

345 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 01:10:56 ]
すいません、お聞きしたいのですが

911SHなどで画面を回転させた時に通知を受けるか、画面の回転の状態を知るAPIはありますでしょうか?

API DOCなどみても探しきれなくて・・・。

よろしくお願いします。

346 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 01:11:59 ]
すいません、お聞きしたいのですが

911SHなどで画面を回転させた時に通知を受けるか、画面の回転の状態を知るAPIはありますでしょうか?

API DOCなどみても探しきれなくて・・・。

よろしくお願いします。

347 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 11:01:25 ]
>>344
メールヘッダからいじれんとダメだから、
間にCGI挟むしかないんじゃない?

以前PHPで作ったけど、全キャリ対応のデコメは氏ねるよ


348 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 00:27:13 ]
famiJSCLをコンパイルしようとしているんですが、
致命的エラー: クラスパスまたはブートクラスパスでパッケージ java.lang を検出でき
ません。
とエラーが出てうまくコンパイルできません。
かなりの初心者なのでどなたか教えていただけないでしょうか。お願いします。

349 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:17:23 ]
>>346
俺の手元のAPI DOCにはあるみたいだけど、回転ってなに?

>>348
そのエラーと質問の仕方をみれば、あなたには何を言っても無駄。
Softbankエミュ総合スレのテンプレ読んできな

350 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:42:56 ]
>>349
偉そうに発言してるが、何も答えてない
バカの典型ハッケーン

351 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:45:29 ]
>>350
偉そうに発言してるが、何も答えてない
バカの典型ハッケーン

352 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:49:17 ]
> Softbankエミュ総合スレのテンプレ読んできな
実はこれ相当なヒントw

353 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 02:28:18 ]
>>352
そこに触れなきゃ>>350が何も理解してないってだけで済んだものを・・・。



354 名前:デフォルトの名無しさん [2007/09/08(土) 02:32:45 ]
晒しage

355 名前:345 mailto:sage [2007/09/08(土) 09:33:57 ]
みなさん、ありがとうございます。エミュ総合にいってきます。
ほんとうにありがとうございました。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef