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


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

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



1 名前:デフォルトの名無しさん mailto:sage [04/08/06 22:21]
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。

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

過去スレ
携帯JAVAのスレッド
pc2.2ch.net/test/read.cgi/tech/1011977260/(DAT落ち)

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

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

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

281 名前:277 mailto:sage [04/09/17 23:15:23]
一応

MIDlet-Resident: Y

MIDlet-Resident: S

とすることで回避はできることがわかりました
が、私はP4,P5機種をターゲットで考えていたので
上記設定で問題回避することはできません...

282 名前:277 mailto:sage [04/09/18 00:01:35]
何度もすいません
仕方なくユーザーが任意の一時停止動作(閉じるor電源ボタン押下)
の場合はアプリを終了するようにしました

終了状態の場合開ける動作による復帰よりも早く
ネイティブの着信処理が走るため一応形としてはエラー終了がなくなりました

283 名前:デフォルトの名無しさん mailto:sage [04/09/18 01:16:41]
イベント発生タイミングで、ぬるぽができてるだけじゃないのかなぁ。
「エラー終了」って、要するに例外が発生して、それを捕まえてないってことでしょ?
なんか「エラー終了」って言葉使うあたりで例外ハンドリングの甘さが漂うんだけど。

284 名前:デフォルトの名無しさん mailto:sage [04/09/18 10:54:35]
一時停止時の処理からの復帰に変なのを書いてるだけのような気がするんだけど、どうかな。

大まかには
> アプリがエラー終了する
から、例外スルーで間違いないでしょ。
たとえば、アドレス帳登録されてないとこからの着信時は名前がnullになるとか。

285 名前:デフォルトの名無しさん [04/09/18 21:31:08]
EzPlusで、
www.crosslanguage.co.jp/webdic/webdic.htmlを利用するプログラムを作ろうと思ってるのですが、
www.crosslanguage.co.jp/webdic/webdicc.cgi?adrs=moe@2ch.net&word=萌え&lang=x&dic=BASE&magazine=yes
のようなURLで
c =(HttpConnection)Connector.open(url);
in=c.openInputStream();
byte[] data=new byte[(int)c.getLength()];
とすると、c.getLength()が-1になってしまいます。
urlを他のサイトに変えてみると問題なく動くのですが、
何がいけないのでしょうか?



286 名前:デフォルトの名無しさん mailto:sage [04/09/18 22:23:48]
シューティングの背景のスクロールはどのようにしたらいいのでしょう?
画面を少しずつずらしていくものなのでしょか

287 名前:デフォルトの名無しさん mailto:sage [04/09/18 23:37:12]
それをスクロールと呼ぶのではないのかね

288 名前:デフォルトの名無しさん mailto:sage [04/09/18 23:40:02]
>>286
DoCoMoの例だけど、参考になるはず。
pc5.2ch.net/test/read.cgi/tech/1091286071/258-262

289 名前:デフォルトの名無しさん mailto:sage [04/09/19 05:40:34]
>>285
サーバ側のContentLength設定次第なので普通に起こりえることだよ。
byte[] data;
int len = (int)c.getLength();
if (len == -1) data = new byte[256];
else data = new byte[len];
とでもすればいいかと。それでin.read()をループ。

>>286
RPGのマップのようなマス目単位の背景をスクロールさせるなら>>288のURL先へ。
1枚の長ーい背景をスクロールさせる場合は、その背景を適当な長さで分割しておき、
読み込み→ずらして表示→画像の端まで来たら続きを読み込み→…と繰り返していく。



290 名前:277 mailto:sage [04/09/19 10:52:14]
>>283
例外処理をおろそかにしていたのでちゃんとやってみます

>>284
具体的には一時停止状態にする場合Threadを停止していないせいだと思います

とりあえず閉じ状態からの着信があった場合のイベント処理順番は
依然として不明のままです...

291 名前:285 mailto:sage [04/09/19 11:39:57]
できました!
多謝 多謝!

292 名前:デフォルトの名無しさん mailto:sage [04/09/19 15:19:20]
MIDPって正規表現使えないのか… orz

293 名前:286 mailto:sage [04/09/19 18:45:05]
>>288,289様
なんとかできそうです。
ありがとうございました。


294 名前:デフォルトの名無しさん mailto:sage [04/09/20 11:45:33]
当方java初心者です。

質問があります。
LISTのカスタマイズ(継承)の話が上であったと思うのですが、
javadocをみながら継承している流れを追ったりしてみましたが、
イマイチどう、カーソルやリストを作成すればいいのかイメージが
わきません。
LISTを継承して拡張するような方向で考えているのですが、
背景を変えたりすること自体がCanvasクラスでの方法しか思いつかず
四苦八苦しています・・・

ヒントをいただけたら幸いです

295 名前:デフォルトの名無しさん mailto:sage [04/09/20 15:38:49]
>>294
Listなど、MIDPのUIクラスの描画は実装によって行われる。
つまり、実装依存であり、その描画内容などをプログラムから取得したり変更したりするすべはない。

296 名前:デフォルトの名無しさん mailto:sage [04/09/20 15:40:28]
というか、リストなんて一から自分で書いても大して難しくもないと思いますが。

297 名前:294 mailto:sage [04/09/20 16:01:14]
ああ、UIコンポーネントはみな実装依存か、、、
分かりました。一から作成するほうで考えて見ます。

どうもありがとうございました

298 名前:デフォルトの名無しさん [04/09/20 22:03:45]
short型の数字をbyte[]に変換したいのですが、どうすればいいでしょうか?

byte[]に変換したいのはRecordStoreに保存したいからです。

299 名前:デフォルトの名無しさん mailto:sage [04/09/20 23:58:44]
>>298
前スレにそんな話題がでてた希ガス



300 名前:デフォルトの名無しさん mailto:sage [04/09/21 00:33:25]
>>298
ビット幅気にしないのなら無理矢理キャストすればいい。
気にするなら、たとえばオレのやってるの

(int valueをtmpに入れる場合)
byte[] tmp = new byte[4];
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value; value>>=8;
tmp[2] = (byte)value; value>>=8;
tmp[3] = (byte)value;

301 名前:298 mailto:sage [04/09/21 09:35:02]
>>300さん
ありがとうございます。
これって符号もオッケイなんでしょうか?
一応±32000くらいまでを扱うつもりなので。
shortなので、
tmp[0] = (byte)value; value>>=8;
tmp[1] = (byte)value;
でやってみます。
ありがとうございました。
#とはいえちょっとしばらくは手がつけられなかったり…

302 名前:デフォルトの名無しさん mailto:sage [04/09/22 22:16:52]
ttp://k-tai.impress.co.jp/cda/article/news_toppage/20667.html

MIDP2.0、とうとうボダで出るのか

303 名前:デフォルトの名無しさん mailto:sage [04/09/22 22:27:31]
こっちは一般公開されなさそうな気がする。

304 名前:デフォルトの名無しさん [04/09/22 22:52:44]
shortで間に合う範囲を
intでやるのとlongでやるのだとやっぱり実行速度も
short > int > long
になるんですか?


305 名前:デフォルトの名無しさん mailto:sage [04/09/22 23:05:18]
それは実機で計ってみないとなんとも。
32ビットWindowsなら理屈ではintが有利なはずだ(エミュでも多分そうだろう)が

306 名前:デフォルトの名無しさん mailto:sage [04/09/22 23:27:19]
vodaのMIDP2.0+VSCLは一般公開できないの?


307 名前:298 mailto:sage [04/09/22 23:59:16]
何度もすいません。
int value=123123; //数字は適当
temp[0] = (byte)value;
value = value>>8;
temp[1] = (byte)value;
value = value>>8;
temp[2] = (byte)value;
value = value>>8;
temp[3] = (byte)value;
int a_value = ((int)temp[3]<<24) & ((int)temp[2]<<16) & ((int)temp[1]<<8) & ((int)temp[0]);
としてもa_valueと元のvalueが一致しないのはどこが悪いんでしょうか… 


308 名前:デフォルトの名無しさん mailto:sage [04/09/23 00:47:02]
> int a_value = ((int)temp[3]<<24) & ((int)temp[2]<<16) & ((int)temp[1]<<8) & ((int)temp[0]);

これが悪いんじゃないの?
(temp[0] & 0xFF) とかやんないと駄目でしょ
byteの0xFF(10進で-1) をintにしたら0xFFFFFFFFだよね?

309 名前:300 mailto:sage [04/09/23 00:57:47]
>>307
オレはこんな風に元に戻してる。
value = 0xFF&tmp[3] ; value<<=8 ;
value |= 0xFF&tmp[2] ; value<<=8 ;
value |= 0xFF&tmp[1] ; value<<=8 ;
value |= 0xFF&tmp[0] ;

もうちょっとマシな書き方がある気もするけど、
ビット操作好きじゃないからまぁちゃんと動けばいいかなと思ってる。



310 名前:デフォルトの名無しさん mailto:sage [04/09/23 04:02:20]
>>304
int が一番速い。

311 名前:298 mailto:sage [04/09/23 11:35:54]
みなさんなんどもありがとうございます。
おかげさまで以下のようにし、無事動作しました。
public long bin2long(byte[] b){ long j=0;
j |= (long)((b[0] & 0xFF)) << 56;
j |= (long)((b[1] & 0xFF)) << 48;
j |= (long)((b[2] & 0xFF)) << 40;
j |= (long)((b[3] & 0xFF)) << 32;
j |= (long)((b[4] & 0xFF)) << 24;
j |= (long)((b[5] & 0xFF)) << 16;
j |= (long)((b[6] & 0xFF)) << 8;
j |= (long)((b[7] & 0xFF)); return j;}
public byte[] long2bin(long l){ byte[] b = new byte[8];
b[0] = (byte)(l >> 56);
b[1] = (byte)(l >> 48);
b[2] = (byte)(l >> 40);
b[3] = (byte)(l >> 32);
b[4] = (byte)(l >> 24);
b[5] = (byte)(l >> 16);
b[6] = (byte)(l >> 8);
b[7] = (byte)(l); return b;}
public int bin2int(byte[] b){ int j=0;
j |= (b[0] & 0xFF) << 24;
j |= (b[1] & 0xFF) << 16;
j |= (b[2] & 0xFF) << 8;
j |= (b[3] & 0xFF); return j;}
public byte[] int2bin(int i){ byte[] b = new byte[4];
b[0] = (byte)(i >> 24);
b[1] = (byte)(i >> 16);
b[2] = (byte)(i >> 8);
b[3] = (byte)(i); return b;}

312 名前:デフォルトの名無しさん mailto:sage [04/09/23 17:42:44]
>>306
未定

313 名前:デフォルトの名無しさん mailto:sage [04/09/25 02:05:16]
えーと、どこ探しても見つからなかったんで質問します
今StorageConnectionで外部メモリのテキストファイルを読み込もうとしてるのですが何度やってもエラーが出てコンパイルできません。
自分じゃあ分かりそうに無いし書籍探してもHttpConnectionのソースしか書いてないしでどうしようもなくなったんで
どなたかStorageConnection使ってテキストファイルを読み込む簡単なソース貼ってくれないでしょうか
あと、ついでなんで画像もHttp使うのしか分からないんで外部から読み込む簡単なソースお願いします。

なんか頼みばっかなんですがスンマセン宜しくおねがいします

314 名前:デフォルトの名無しさん mailto:sage [04/09/25 02:54:56]
>どこ探しても見つからなかった
>>13

315 名前:313 mailto:sage [04/09/25 09:12:54]
13のソースを適当にぶっこんでみたけど動かんかった。
で、今のソースが下の

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

public class CCanvas extends Canvas {
private String info="null";
public interface StorageConnection{}

CCanvas() {
}

316 名前:313 mailto:sage [04/09/25 09:16:39]
13のソース適当にぶっこんでみたが動かんかった
もしかしてJ2ME Wireless Toolkit 1.0.4_01じゃ無理とか?
始める時にこのバージョンでやれって言われたのだが・・・

317 名前:313 mailto:sage [04/09/25 09:30:01]
315ミスっぽ

318 名前:デフォルトの名無しさん [04/09/25 10:47:06]
byte[] → Stringって
String hoge = new String(byte[])
って方法でいいんですか?
なんか方変換したいだけなのにnewするのに違和感があって。
Byte.toString(byte[0])+Byte.toString(byte[1])…
とかのほうがいいんですか?

319 名前:デフォルトの名無しさん mailto:sage [04/09/25 11:28:44]
>>316
>>13以降に続くレスも読んだ?そこでは結論出てるようだけど。

>>318
示した2つの方法で得られるものは違う。結果としては何が欲しいの?
byte[]に文字コードが入っててそれが示す文字列にしたいなら上の方法で。
byte[]1つ1つの要素が表す数値を数字としてつなげたいなら下の方法で。

それから>>318は基本的な理解が不足してる模様。
byteやintはプリミティブ型、対してStringはクラス。クラスを生成するには
Canvasなどと同様でnewするものだろう?
文字列を+でつないでいくのも内部的にStringBufferが生成されてaddが
行われているだけ。詳しくはCLDCのAPIリファレンスでStringのとこ読んで。



320 名前:デフォルトの名無しさん mailto:sage [04/09/25 11:30:51]
補足。
Byte.toString(byte[0]) …こんな書き方のものはない。

321 名前:313 mailto:sage [04/09/25 18:48:38]
>>319
すまん漏れの頭悪すぎて分からん

一応、P5型のアプリ作成する時のソフトウェア環境どなたか書いてもらえます?
ヴァージョンも。

322 名前:デフォルトの名無しさん mailto:sage [04/09/25 23:05:23]
Vアプリ作って見ようかと思ってその辺で拾ってきたソースをコンパイルしようとしてみたら
パッケージ com.j_phone.io は存在しません。
って出るんだけどこれどうすりゃいい?


323 名前:13 mailto:sage [04/09/25 23:18:13]
いや、まさしく13なんですが(以前も以後も何度もスレに顔出してますが)
>>313
> 何度やってもエラーが出てコンパイルできません。
だから、コンパイルができてないという状態だと思うんですが。。
だから13とは関係ないと思うんですが・・

classpathでstubclasses.zipを指定してないというオチでは?
>322も。
www.saturn.dti.ne.jp/~npaka/kvm/javapress/coolskiers/support.html

324 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:01:49]
322だす
-bootclasspathでstubclasses.zipを指定してみたのだが
エラー: *.java を読み込めません。
エラー 1 個
って出る・・・・何故だ・・・。

325 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:03:56]
>324
コマンドラインそのまま晒してみれ。

326 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:11:43]
bootclasspathのとこだけでいい?

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

327 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:20:41]
……うゆ?
コンパイルするソースもC:\j2sdk1.4.2_05\binに置いてるん?
それともカキコ用に適当なパス書いただけ?

まさかとは思うけどカレントディレクトリ間違ってない?

328 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:25:34]
むむ

パスってjavac.exeが置いてあるとこじゃないの?
set path=c:\j2sdk1.4.2_05\bin\;C:\wtk104\bin;
てしたから始めはjavac.exeの場所じゃないと思ったんだが、c:\j2sdk1.4.2_05以外だとjavacが見つかりませんてエラーでたし・・・

えーと、パスはコンパイルするソースが置いてあるところなわけだな。
もう一回set pathからやり直して見る

329 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:38:08]
set pathし直したらjavac動いた。

が、試しにmyMIDletってのをコンパイルしてみたんだが
myCanvas.classとmyMIDlet.classってのが出来て、outputてフォルダの中に同名でサイズが違うのが出来た
んで、jar cmf MANIFEST.MF myMIDlet.jar -C output .
て実行したらMANIFEST.MFが見つからんとか
これって手書きで作成?

あと、コマンドラインでコンパイルするのとJ2ME Wireless Toolkitのビルドとどう違うん?



330 名前:デフォルトの名無しさん mailto:sage [04/09/26 00:44:59]
む。漏れは普段はant使ってる人なのでWireless Toolkitがどうなってるか忘れた(汗)
ただ、環境変数PATHにjavac.exeの位置が入ってなくても
絶対パスで動かすんで無問題だったかな > Toolkit
後はコマンドラインだと手作業、Toolkitは一括でjarまで作る、くらいかな、違いは。
(手作業っつっても、バッチ作るなりそれこそant入れるなりすればさして手間はかからん)

MANIFEST.MFは手書き……だと思う。一回書いたらそうそう書き換えることもないっしょ。

331 名前:13 mailto:sage [04/09/26 00:51:49]
Wireless Toolkit使ったら、
jad/MANIFESTの作成から、javac/preverify/jarまで一括でやってくれるんじゃなかったっけ?
オレも使ってないから知らん。
一回書いたらほとんど直さないから、手書きでいいと思う。

入門記事
www.itmedia.co.jp/mobile/0203/08/n_j1.html

332 名前:デフォルトの名無しさん mailto:sage [04/09/26 01:03:22]
質問ばっかりでごめん

Wireless Toolkitだとcom.j-phone.ioは存在しませんってエラーになってビルド出来ない
コマンドラインでやればエラー出ずコンパイルできたけどjad手書きしてエミュで実行してみたら
MicroEdition-Configurationの項目が存在しません
ってエラー出てロード出来ん
jadの中身↓
MIDlet-1: FileSystem, FileSystem.png,
MIDlet-Name: FileSystem
MIDlet-Vendor: sun
MIDlet-Version: 1.0
MIDlet-Application-Range: 0,0
MIDlet-Network: Y
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC-1.0
MIDlet-Jar-URL: FileSystem.jar
MIDlet-Jar-Size: 1843

antっての使ったほうがコンパイルとかなの?

333 名前:322 mailto:sage [04/09/26 02:00:59]
homepage1.nifty.com/cotton100/jphonejava.htm
ここに

(補足)
なお、J2ME WirelessToolkitを、コンパイル環境として使う場合は、
JSCLのライブラリ(stubclasses.zip)を解凍、CLDCライブラリも解凍して、2つを統合し
上記の「非圧縮zip」で圧縮すれば使えるそうです。

って書いてあるんで試してみます・・・。
これ出きればコマンドライン使わずにいけそうなので。
て、kjxでも同じかな…まあ試して見る

334 名前:デフォルトの名無しさん mailto:sage [04/09/26 02:04:05]
うちではantもコマンドラインも使わずにWTK104でボーダのビルドやってるが。
WTKのlibディレクトリのmidpapi.zipには当然ボーダ固有のAPIは含まれてないので
com.j-phone.*を使うようなアプリではコンパイルでエラー。
WTK使ってる限りは-bootclasspathの指定とかできないからstubclasses.zipを
midpapi.zipにリネームして置換してる。
au/docomoでコンパイルする場合は元のmidpapi.zipを使ってる。

335 名前:322 mailto:sage [04/09/26 02:40:49]
両方のファイル開いてみると、midpapiに含まれてるファイルが全てstubclassesに含まれてない感じ。
だから、多分
stubclasses.zipにmidpapi.zipの内容が全部含まれてないからリネームだけじゃ駄目かと思う。
多分だから間違ってたら指摘よろ

・・・と、漏れはstubclasses.zipの内容をどうやってmidpapi.zipに統合しようか悩んでるわけだが。

>>13 & 他の人
stubclassesの統合でWirelessToolkit使ってjad/mfの生成できそうです
親切に教えてくれて多謝多謝!
WTK使ってコンパイル出きるようにがんばる

336 名前:334 mailto:sage [04/09/26 05:02:36]
>>335
確かにmidpapiが全てstubclassesに含まれているわけではないが
midpapiのうちボーダの開発には不要なAPI(サポートしていない機能)が省かれている
だけのようなので、自分では単純にリネームしたものを使っている。
何ら保障するわけではないが、これで不都合は起きていない。

ちなみに2つを統合するならこれでOK
1.midpapi.zipとstubclasses.zipを解凍する
2.midpapi側を全てstubclasses側に上書きコピーする
3.stubclasses側を無圧縮zipで固めて、midpapi.zipにリネームする
はじめ自分はこれでやってたんだが、統合したもの(自分で作ったもの)を使うってのが
逆になんか気持ち悪くて今の方法(リネームして置換)に変えた次第。

337 名前:デフォルトの名無しさん [04/09/26 11:49:53]
Canvasで何かを描く時、
getWidth()をよく使うんですが、
これって起動してすぐにint width = getWidth()
とかしてその後は毎回getWidth()する代わりに、widthを使った方が
早かったりしますか?

338 名前:322 mailto:sage [04/09/26 12:59:25]
>>334
統合したらWTKで今までcom.j-phone.io見つかりませんってエラー出てたの出なくなりビルドできました。
これでJSCL使ってもいけそうです


んで、JSCL使ったテストアプリを色々と試してみてるのだけど313と同じくStorageConnectionがうまく動きません。
サンプルソースがどこ探しても無いしHttpConnection使ったサンプルソースのHttpの部分をStorageに書き換えて試して見たが、ビルドエラー無いけどエミュで実行してみても読み込み出来ず。
ちょいとソース上げたので、見てやってもいいぞって人いれば間違い部分指摘して下さい

ttp://namihei.zone.ne.jp/cgi-bin/up/upload.cgi
の、21945

ちなみに読み込むテキストはV-appliエミュレータがインストされてるフォルダのbin内IntStorageの中に置いてあります。

339 名前:デフォルトの名無しさん mailto:sage [04/09/26 13:12:49]
あんまりしょっちゅう呼び出す(ソースに記述する箇所が多い)なら変数に代入して
保持してていいんじゃないかな。あくまで見やすさと記述の手間を省くという点で。
その程度で速さは稼げないから。



340 名前:デフォルトの名無しさん mailto:sage [04/09/26 13:14:36]
>>339>>337向け

341 名前:322 mailto:sage [04/09/26 13:28:22]
>>337
速さは稼げないけど、ファイルサイズが小さくなるのと見やすくなるって利点はある
・・・と思う
あ、でもアプリを使う機種が限定されてたりするなら値で入れといてもいいかもね
・・・多分

342 名前:337 mailto:sage [04/09/26 13:45:02]
170x130程度からQVGAまで対応したいので、
変数に代入する方で行きます。

ありがとうございました。

343 名前:322 mailto:sage [04/09/26 13:57:03]
やっぱどうやってもStorageConnectionで読み込めん。
JSCL1.2.xの参考書でいいのとかあります?
手持ちの書籍じゃJSCL1.1までしか対応(書いて)してない(´д`;)

344 名前:デフォルトの名無しさん mailto:sage [04/09/26 16:43:43]
>>343
サンプルくらいDLしる
www.dp.j-phone.com/dp/tool_dl/java/emu.php
あと、JSCL1.2に関する書籍は聞いたことがないな。
どうせ消えるらしいし今後も出ないと見た。

345 名前:322 mailto:sage [04/09/26 17:02:46]
>>344
このサンプル前ダウンロードしたけどエラーで動かなかったから諦めてたんだけど
今動かしたら動いた(´д`;)
ちょっくら分解してきます…。

346 名前:デフォルトの名無しさん [04/09/26 17:25:06]
質問ですみませんが
前スレ36氏の発言KJXカッター
ezplusの実行形式KJXファイルを簡単にJADファイルとJARファイルに戻せる

jarはzipと同じなので、適当なツールで伸張

Java逆コンパイラ(沢山あるからググれ)にかける
と書いてあり逆コンパイラしたファイルのバグを修正してコンパイラすると
エラーが必ず出ます。
インターフェイスファイルが無いなどで
まぁ一回無視してclassファイル(12個)や画像ファイルをzip圧縮して
kjx結合君で無理やりkjxにしたのですが起動できませんでした
しかも通信機能がついているのに通信が無効になってしまいました
何か解決方法は無いでしょうか?

347 名前:デフォルトの名無しさん mailto:sage [04/09/26 21:34:06]
Vアプリ作成中で、レコードストアにデータをaddしたりsetして、
それをgetRecordして表示させようとしているのですが、
どうもうまく表示できません。

どの過程をしくじっているのかなかなか把握できないのですが、
Vエミュ(P4型)ではレコードストアの状況とかみれないのでしょうか?

あと、setRecordを使うことで、特定のIDに新規書き込みすることは不可能なのでしょうか?


348 名前:デフォルトの名無しさん mailto:sage [04/09/26 23:04:42]
>346
逆コンパイルした*そのままの*ソースはコンパイル通る?
通らなかったらその逆コンパイラが腐ってる可能性があるから別のを探そう。

起動できないetc.はそれを確認・対処してから考えましょう。
通信が無効ってのは……kjx作るとき元のと同じMANIFEST.MF使ってる?

349 名前:347 mailto:sage [04/09/26 23:28:42]
エラーを画面に表示させて、細かくステップごとに見ていくと、
どうやらOPEN時点ですで引っかかっていたみたいです。
で、いろいろ検討して、レコードストア処理をしているサンプル探してきて
実行すると、ちゃんとしているものなら *.rmsというデータができること
を発見し、そこから調べていった結果。MANIFESTと.jadの問題だったようです。

MIDlet-data-sizeは登録しておいたと思ったんだけど、、動いてるものから
コピペして書き換えたら処理できるようになりました。
setも既出のものしかできないこともわかりましたので・・・
お騒がせしました。



350 名前:デフォルトの名無しさん [04/09/26 23:51:49]
>>348
逆コンパイラはDJ Java Decompilerで逆コンパイラしたファイルを
そのままコンパイラしようとすると
「シンボルを解釈処理できない」
と出ます。
一度.classを読み取り.javaにしたファイルをそのまま.classに戻す時点で
このエラーが出ます。
また他の.classを読み取り.javaにしてまた.classに戻そうとすると
「このファイル名はpulicです宣言ファイル名.javaで宣言しなければなりません」
と出てしまいます
やはり逆コンパイラが腐っているのでしょうか
MANIFEST.MFは同じものを使っていますMETA-INFというファイルに納めてあります

351 名前:デフォルトの名無しさん mailto:sage [04/09/26 23:54:01]
連レスすみませんsageをずっと忘れてました
あとMANメッセンジャーでご指導して頂ける方は指導希望と書いてくれませんか?

352 名前:デフォルトの名無しさん mailto:sage [04/09/26 23:56:35]
>350

とりあえず逆コンパイラをjadに変えてやってみましょ。
ttp://kpdus.tripod.com/jad.html

353 名前:デフォルトの名無しさん mailto:sage [04/09/27 11:32:43]
>>351
甘 え る な

354 名前:デフォルトの名無しさん [04/09/27 14:09:58]
Vアプリで質問します。
J2ME Wirless Toolkit でビルドを行ったのですが、
com.j_phone.* は存在しません。と出てしまいます。
com.j_phone一式がインストールされてないということと思いますが、
その入手先と、設定方法を調べていますが、どうもみつかりません。
教えていただけますと助かります。

355 名前:デフォルトの名無しさん [04/09/27 14:11:41]
354です。補足します。
J2ME Wirless Toolkitのバージョンは、1.0.4です。
VアプリのP5型の開発をしております。

356 名前:デフォルトの名無しさん [04/09/27 14:33:55]
JSCLが足りないのかな?

357 名前:デフォルトの名無しさん [04/09/27 14:57:21]
354です。
ttp://java.cocolog-nifty.com/blog/2004/03/
を読んで、JSCLのインストールを
試してみたところ、次のようなエラーが出てしまいました。
----------------------
ERROR: native methods should not appear

Error preverifying class com.jblend.graphics.j3d.ActionTable

com.sun.kvem.ktools.ExecutionException: Preverifier returned 1

Build failed
----------------------
意味がよく分からないのですが、ネイティブメソッドを使ってはいけない。
と出ているようです。ネイティブメソッドは使用していないのですが、
何故こうなるのでしょうか?

358 名前:デフォルトの名無しさん mailto:sage [04/09/27 15:27:17]
>>346
自分じゃアプリ作れないけど改造だけなら出来そうとか思ってるんだろうな・・。
そもそも逆コンパイル自体グレー的(おそらく他人のアプリだとして)な行為なのに、
コンパイル等の仕組みを良くわからないまま手を出して「腐ってる」は無いだろ。
「シンボルを〜」とか「〜で宣言しなければ」なんて超基本的なことで、
少し自分でソースチェックすれば解決できそうなもんだけどな・・。

たぶんそのアプリの作者がサイズ削減かコード閲覧回避のためオブファスケータ使ってて、
その時ファイル名と異なるクラス名が付いたから、とかじゃないかとか思うけど。
まぁ逆コンしたものであるかは別にして、ソースがコンパイルできるかどうかの問題だから
ソースとBuild設定さえ見れたらアドバイスできるが、他人のなら無理だな。
とりあえずアップできるソースならアップして、他作なら許可もらうか直接聞いたら?

359 名前:デフォルトの名無しさん [04/09/27 15:40:19]
Vアプリで、
JConnector.class を入手したのはいいのですが、
どこに置けば良いのでしょうか?
分かる方いらっしゃいますか?



360 名前:デフォルトの名無しさん mailto:sage [04/09/27 16:20:06]
>>359
JConnector.classってなんだ?

361 名前:346 mailto:sage [04/09/27 18:20:41]
>>358
確かにおっしゃる通りです。
一応eclipseで逆コンパイラしてソースを見てみると
たくさんエラーが表示されますね
おそらくコード観覧回避目的だと思います。
企業のアプリなんでアップや直接聞くことはできませんが
一からJAVAを勉強し直して自分でコンパイラできるようになり
アプリを制作できるようになりましたらまた挑戦してみます。
>>353
甘えもありますが、板をあまり質問で汚したくなかったので
そのような書込みをしました。

362 名前:デフォルトの名無しさん [04/09/27 21:02:05]
みなさんに質問させてください。

今、純MIDP2.0 のみ( VやAUのクラスを使用しない )でアプリを作っています。
で、今行き詰まっているのは
ランチャーのように『アプリA』 から 『アプリB』や『アプリC』 を呼ぶことは可能か?
という事についてです。
別スレッドということではなく、あくまで別アプリを呼ぶという事で。

他のアプリを呼ぶ事自体が非常識なんでしょうか?
セキュリティ上ダメかな・・・と、少し諦めてはいるのですが
可能ならば容量制限などを気にせず作れるかな〜と思っています。

『そんなの普通にやってるコトだよ!』とか『できるワケね〜だろ!』といった
内容でもよろしいので、ご意見下さい。

363 名前:デフォルトの名無しさん mailto:sage [04/09/27 21:11:44]
>>362
アプリAに終了命令出して、アプリBとかCに開始命令出せればいけるかも
でもレコードストアのデータとかは引き継げないから結構使いにくいかもね。

364 名前:デフォルトの名無しさん mailto:sage [04/09/27 21:32:42]
>>362
MANIFST.MFにMIDlet-1, MIDlet-2とか書いて、
1つのjarの中に複数のMIDlet詰めることはできたと思う。
そういうアプリの場合、起動時に詰め込んである複数のMIDletから(ユーザが)アプリを選んで起動できる。

レコードストアを共有できるかどうかはシラネ。MIDPのドキュメント読んで。たぶんできると思うけど。
でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。

365 名前:362 [04/09/27 22:06:42]
早速のレスありがとうございます!

>>363さん
別アプリって認識できるのかな?
でも、やってみますね!


>>364さん
大変勉強になります。
1つのjarに複数のアプリが入れられるとは思いませんでした。
レコードストアに関しては、早速、印刷して読み込んでみます。

>でも、今のケータイ向けのアプリでは一般的には使われてないっぽいけど。
通信速度もメモリも拡大している最近では、複数に分けてみようってのは
イマイチな考え方なんですかね・・・(泣

やはり別jarパッケージの起動は無理っぽいのかな〜。
やれる事は全部やってみて、引き続きがんがってみます。

みなさん、ありがとうございます。

366 名前:なっち(○´ー`○) mailto:sage [04/09/27 23:40:26]
MIDP2.0ではMIDletスウィートは
廃止されたような気がしたけどどうかな。

367 名前:デフォルトの名無しさん mailto:sage [04/09/28 02:14:54]
MIDP2.0でも MIDlet Suiteはありますよ。

MIDlet Suite内のMIDlet間の連携は無理です。
選択画面を経由した手動の切り替えのみ可能。
ってのが建前。

それからレコードストアは共有できる。はず。


368 名前:デフォルトの名無しさん mailto:sage [04/09/28 11:09:46]
レコードストアは、JARに対応して設けられるので、
MIDlet Suite 中で同じレコードストア名を使用すると、同じデータを参照できます。

アプリケーション間連携がないのは、セキュリティリスクの低減と、
設計モデルの問題ですね。

369 名前:デフォルトの名無しさん mailto:sage [04/09/28 13:23:41]
レコードストア関連であった話しなんだけど、
一つのレコードに複数のデータを設けて、split出区切る方式を
考えて、やってみたんですけども、

メソッド split(char) は型 String で未定義です。

でコンパイルが通らないです。j2sdk1.4.2_02です。
split使えないなんて事はないと思うんだけど、、
ご教授いただけますでしょうか・・

try{
rs = RecordStore.openRecordStore("frends",true);
byte[] b=rs.getRecord(1);
String rec =new String(b);
rs.closeRecordStore();
String nlist[ ]= new String[1];
nlist = rec.split("|");
}catch (RecordStoreException e){
feno =9999;
fname = "ERROR;";
}



370 名前:369 mailto:sage [04/09/28 14:50:28]
今は
メソッド split(String) は型 String で未定義です
になってますね。さっきはパラメータに'|'を送ろうとしてたので、
Charだったみたいです。

371 名前:デフォルトの名無しさん mailto:sage [04/09/28 14:57:14]
>>369
そのエラーメッセージの通り。
Stringクラスにsplit()というメソッドはない。

372 名前:デフォルトの名無しさん mailto:sage [04/09/28 18:39:19]
J2ME Wireless Toolkitを使ってビルド→パッケージやってるんですけど
パッケージ化するたびにメモ帳でJAD開いてにMIDlet-Networkを追加するのが面倒です
この作業をしないで済む方法ってないですか?

373 名前:デフォルトの名無しさん mailto:sage [04/09/28 19:52:09]
>>372
俺はWireless Toolkit使わずにバッチファイルでパッケージしてる。

374 名前:デフォルトの名無しさん mailto:sage [04/09/28 20:13:37]
オススメ
ttp://www.wakhok.ac.jp/~oota/vappli/

375 名前:デフォルトの名無しさん mailto:sage [04/09/28 20:28:58]
>>372
パッケージ化のたびに項目消える方がヘン。
マニフェストファイルの方に書いてないってオチでは。

376 名前:372 mailto:sage [04/09/28 20:32:33]
案外マニフェストファイルに書いておけばパッケージ化の時にjadに自動的に書き込まれたりするってことだったりします?
初心なこと聞いちまったぽい。

377 名前:デフォルトの名無しさん mailto:sage [04/09/29 01:52:33]
質問です

現在、JPG画像を表示させるP5向けのアプリを作っています
しかしImage.createImateして、drawImageで表示させても何故か減色されてしまいます。
アプリでは256色までしか扱えないのでしょうか?
それともJPGはの表示は特別な方法があるのでしょうか?

教えて下さい
よろしくお願いします。

378 名前:デフォルトの名無しさん mailto:sage [04/09/29 11:15:01]
>>377
アプリは何で実行してるの?実機?エミュレータ?
256色の制限なんてあったっけ?


379 名前:377 mailto:sage [04/09/29 13:25:50]
すいません、すこし説明不足でした
P5用のVアプリエミュで実行してます。
256色で制限されてるのかはよく分からないのですが、256色に落として保存した画像みたいに年輪みたいになって表示されてしまいます。



380 名前:デフォルトの名無しさん mailto:sage [04/09/29 17:14:22]
DOJAでも、
そんな感じに表示されるけど、実機では問題なし。

381 名前:377 mailto:sage [04/09/29 17:19:18]
380
実機で試してみますね。
ありがとうございました。






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

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

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