5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

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

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

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

550 :547:2007/01/29(月) 12:38:10
>>549
ありがとうございます。
J2ME Wireless Toolkit 2.2付属のKToolBarに頼らずにコンパイルを試みてみたのですが、
MEXA 1.1とJSCL 1.3.2のstubclasses.zipにクラスパスを通しても、

java.lang.StringBuilder にアクセスできません。
ファイル java\lang\StringBuilder.class が見つかりません。

とエラーが出てしまいました。
StringBuilderクラスは、J2SE 5.0で追加されてjava.langパッケージに含まれるとまで
分かったのですが、どうして良いのか分からなくて・・。

引き続き調べてみますが、やはりコンパイル初めてで知識不足な為、
JSCL 1.2.2 SDK付属のKToolBarに頼りたいとも思います。
どなたかJSCL 1.2.2 SDKをお持ちでしたら、譲っていただけませんでしょうか?
http://up4.skr.jp/

551 :デフォルトの名無しさん:2007/01/29(月) 12:39:18
そのすれ違いのスレで答えてもらったのをよんだのか?
教えてもらってなにも返答してないじゃないか

552 :547:2007/01/29(月) 12:51:12
すみません、しばらくあちらのスレは読んでいませんでした。
返信してきます。

553 :デフォルトの名無しさん:2007/01/29(月) 13:37:52
>>550
StringBuilderって使えないのでは。
コンパイル環境自体はそれでよさそうだから、
後はソース修正した方がいいんじゃない?

それはそうと、JSCL1.2.2のツールって
コンパイルからマニフェストファイルの設定も出来て便利だったよね。


554 :デフォルトの名無しさん:2007/01/29(月) 14:40:21
>>543
JSCL1.2.2のエミュレータでMIDP2.0動かんって見るんだけど、
Graphics.drawRegionとか使ってるアプリ普通に動いているんだが、
俺なんか間違ってる?

ビルドはコマンドラインでやってっから、KtoolBarの制限ってこと?

555 :デフォルトの名無しさん:2007/01/29(月) 15:22:58
SoftBankが統合開発ツールを出せば全ての問題が解決するのに
技術力無いのかね

556 :デフォルトの名無しさん:2007/01/29(月) 15:23:28
>>550
1.2.2はMEXA Emulatorのlib\stubclass.zipで代用できるからやってみ。
単なるクラスパスに通すのではなくて、-bootclasspathに指定する。
preverify.exeはWTK2.2のを使って、CLDC1.1を指定するオプションを忘れないこと。

StringBuilderはJDK1.5以降で文字列の足し算をやってると勝手に使われるよね。
恐らくコンパイルにJDK1.5以降を使ってるでしょ。
そういうときは-source 1.3 -target 1.3オプションを付けてコンパイルしてみ。
こうすると代わりにStringBufferを使うようになるから。
これでうまく行かない場合はJDK1.4を使って、同じようにやってみるべし。


昔の3GC〜のエミュ部分は、MEXA Emulatorで代用できる。
SDK相当の部分は含まれていないけど、自分でコンパイルできる技能があれば
WTK2.2とMEXA Emulatorの組み合わせが使えるわ。

557 :547:2007/01/29(月) 17:06:39
みなさん、ありがとうございます。

>>556
JDK1.5.0_09です。おっしゃる通り、-source 1.3 -target 1.3をつけて
-bootclasspathでMEXAのstubclasses.zipを指定して行ったところ、
>>550のエラーが出なくなり無事コンパイル出来ました。

プレベリファイも、WTK22のpreverify.exeで-target CLDC1.1をつけて
行いました。アプリも問題なく動作しています。

おかげ様で自分の環境でもコンパイル出来るようになりました。
詳しく解説していただき、本当にありがとうございました。

558 :デフォルトの名無しさん:2007/01/29(月) 21:23:10
コンパイルエラーで困ってるんですが見てもらえますか?
やりたいことはブラウザ起動させるだけなんですが、簡単なようで出来ないです

try {

  PhoneSystemEx.midlet.platformRequest("http://www.google.co.jp/");

} catch (Exception e) {}


↓エラー文字

C:\WTK22\apps\PhoneSystemEx\src\PhoneSystemForm.java:69: シンボルを解決できません。
シンボル: メソッド platformRequest (java.lang.String)
場所 : javax.microedition.midlet.MIDlet の クラス
PhoneSystemEx.midlet.platformRequest(

559 :デフォルトの名無しさん:2007/01/29(月) 21:42:05
>>558
プロジェクトの設定がMIDP 1.0になってないか確認してみ。
platformRequestはMIDP 2.0以降だよ。

560 :デフォルトの名無しさん:2007/01/29(月) 22:06:16
>>559
MIDP 2.0の指定でコンパイルしてもダメだったんです

今なんとなく原因がわかって
SDK1.2.2や1.3.2のstubclasses.zipを使用するとコンパイルエラーで
MEXAについてたstubclasses.zipのパスを通せば動いたんだけど

と言うことは以前のエミュについてたstubclasses.zipで開発してた時代にはplatformRequestが無かったことなんですか?

561 :デフォルトの名無しさん:2007/01/29(月) 22:09:15
JSCL1.2.2SDKで普通にplatformRequest()使ってるお

562 :デフォルトの名無しさん:2007/01/29(月) 22:11:29
>>561
マジですか・・jadに何か追加することとかってある?

563 :デフォルトの名無しさん:2007/01/29(月) 22:44:41
MEXAのstubclasses.zip使うのか解決になってない気がするけど
JSCL1.2.2SDKで動くようにならーん!

564 :デフォルトの名無しさん:2007/01/29(月) 23:59:43
platformRequestの問題解決しました〜
stubclasses.zipの他にmidpapi20.jarのパスも通さないとダメなんですね

スッキリ

565 :デフォルトの名無しさん:2007/01/30(火) 00:43:39
>>564
何のためにパスを通すのかを理解してるか?

566 :デフォルトの名無しさん:2007/01/30(火) 01:18:25
>>565
platformRequest()クラスが含まれてるものを組み込むからでしょ?
stubclasses.zipの中にmidpapi10.jar、midpapi20.jarが全部入ってると思ったけど
一部入ってないことが今日わかった

567 :デフォルトの名無しさん:2007/01/30(火) 10:26:16
Javaて静的リンクしてたっけ?
コンパイル時の名前解決だけかと思ってた。

stubclassesってブートストラップの方じゃね?

568 :デフォルトの名無しさん:2007/02/02(金) 21:34:30
>>557
 あっちのスレから来ました。全く同じことをしてみようとしている者です。
 非常に参考にさせてもらいました。でもうまくいきません。
 -bootclasspathをしてみたところ40個ぐらい出てましたエラーは一気に
 減ったのですが、2つまだシンボルを見つけられませんっと出ます。
 プリプロセッサーを通す時には結局何も設定しなくていいんですよね?
 ktoolbarでビルドしたんでしょうか?私はコマンドでjavac -boot〜
でコンパイルをしてみてるのですが。

569 :568:2007/02/02(金) 21:54:13
 すいません。無事にできました。お騒がせしました。

570 :デフォルトの名無しさん:2007/02/03(土) 01:01:40
>>569 そういう時は
どうやったらうまくいったか
を書くのが礼儀

571 ::2007/02/04(日) 20:53:49
マジで携帯用ワームを作成したいのですが…【34歳・主婦】

572 :デフォルトの名無しさん:2007/02/05(月) 06:42:39
オープンアプリのことはスルー?

573 :デフォルトの名無しさん:2007/02/05(月) 12:12:11
スルー。

574 :デフォルトの名無しさん:2007/02/07(水) 10:48:42
3GC向けにネットワーク接続するアプリを作成したのですが、
ネットワーク接続確認ダイアログで電源キーによりサスペンドレジュームを
繰り返すと2回目のサスペンド時に必ず
「Vアプリエラー 終了しました」
と表示され落ちてしまいます。
解決策はないでしょうか?

575 :デフォルトの名無しさん:2007/02/07(水) 11:23:20
端末は?

576 :574:2007/02/07(水) 11:57:10
>>575
3GC国内端末で試しましたが、試したもの全てで確認できました。
910T、905SH、904SH、804N、902T、803T、802SH、802N等です。

577 :デフォルトの名無しさん:2007/02/07(水) 13:25:53
803Tで試したけどオチネェ。
レジューム、サスペンド時にプログラムで
何か余計なことやっているだろ。
それを提示しろ。


578 :577:2007/02/07(水) 13:27:18
sage忘れた

579 :574:2007/02/07(水) 20:36:08
>>577
設定したフォントがサスペンド時に戻ってしまう為、
毎フレームでsetFontをして、さらに下記の処理を
サスペンド時に行っていました。

while(!Canvas.isShown())
try{Thread.sleep(100);}catch(Exception e){}

この処理のせいでフリーズしていたようです。
フォントサイズが戻ってしまう対処策はみなさんどうしていますか?

580 :デフォルトの名無しさん:2007/02/07(水) 20:45:28
>>579
Fontの取得自体も描画のたびにするべき。
ガイドラインか何かに書いてあったと思うけど・・・

581 :デフォルトの名無しさん:2007/02/07(水) 21:22:27
制限:
. Canvasを継承するクラスでCanvas#paint(){}及びCanvas#paint()から呼び出
すメソッドを実装する際に Graphics#setFont()を使用する場合には、
Graphics#setFont()に与える引数は Canvas#paint(){}のスコープ外で定義し
た変数を与えること。例えば、Canvas(を継承するクラス)のインスタンス変
数やスタティック変数として定義した変数を Graphics#setFont()の引数に与
えること。

582 :デフォルトの名無しさん:2007/02/07(水) 23:56:15
複数トラックでBGMを鳴らしているのですが、
電源キーで中断後、復帰すると1トラックのBGMしか再生されません。
何か考えられる原因はないでしょうか?

583 :デフォルトの名無しさん:2007/02/08(木) 01:31:51
>>582
復帰したら途中からじゃなく新規に再生しなおせばいいじゃん

584 :デフォルトの名無しさん:2007/02/08(木) 10:36:54
SB用携帯アプリ作成に挑戦してみようと思ってるのですが
S! Appli EmuratorがMIDP2.0に対応してないようですが

JDK 1.5
J2ME Wireless Toolkit 2.2

で作成したJAD、Jarファイルを
アプリゲット等に登録してアップしたものを実機でテストすれば
出来るのでしょうか?
(アプリゲットに登録してから出来なかったじゃ悲しいので・・)

それと何でソフトバンク携帯なのにソフトバンクが提供するエミュは旧世代(MIDP1.0)にしか
対応してないのでしょうか?
それとも私が探しきれてないのなら何処にあるか教えて欲しいです・・

585 :デフォルトの名無しさん:2007/02/08(木) 10:39:02
>>584
MEXAエミュレータ使えばいんだよ。

586 :デフォルトの名無しさん:2007/02/08(木) 10:43:53
>>585
勉強不足で申し訳ありませんでした。

因みに
JDK 1.5
J2ME Wireless Toolkit 2.2

だけでも開発→実機で動かす事出来るでしょうか?
何度も申し訳ないです。

587 :デフォルトの名無しさん:2007/02/08(木) 10:46:17
>>586
JSCL、MEXAの機能を使用しないのであれば可能です。


588 :デフォルトの名無しさん:2007/02/08(木) 11:01:53
>>587
なるほど

MEXAエミュレータをインストールして自分で作ったプログラムを試したら出来ました。

早速、アプリゲットの作者登録してきます。
4日くらい掛かるそうですが・・
これでやっと4日後実機テストできます。

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

589 :デフォルトの名無しさん:2007/02/08(木) 12:20:10
>>582
複数トラックのシンクロ再生をしてると、復帰時にスレーブトラックを
再開してくれない移動機がある。
そーいう実装なので諦めて >> 583


590 :574:2007/02/08(木) 13:25:12
>>580,581
ガイドラインにサンプルソースまで載っていますね。
調べ不足ですみません。
ありがとうございました。

591 :デフォルトの名無しさん:2007/02/08(木) 16:20:29
>>583
>>589
レスありがとうございます。
583さんの方法は分かるのですが、
他のアプリで復帰しているものがあって
どうやってるんだ???と調べたものの結果わからずです。
でも、端末にもよるんですね。
なんか悔しいです。

592 :デフォルトの名無しさん:2007/02/09(金) 12:07:32
>>591
setSubjectTo使わなきゃ、普通に中断点から復帰するだろ?
更に言えば、使ってても一部の機種以外は復帰する。

「Phrase再生終了直後、アプリを一時停止・再開した場合、Phraseを正常に再開することが出来ない。
アプリ一時停止時は必ず Phraseを停止(stop)・再開(play)を実施する必. 要がある。 」

なんて注釈打ってある機種もあるぐらいだから、実装としては>>583が正しいわけだが。
それとも機種判別して処理分けるか?

593 :デフォルトの名無しさん:2007/02/09(金) 15:26:25
S!アプリSDK更新来た。

MEXA用プラグインも来てた!

594 :デフォルトの名無しさん:2007/02/09(金) 16:06:42
MEXAエミュは相変わらずCPU使用率が鬼ですね。
ヒープがおかしいバグは直ったようですが

595 :デフォルトの名無しさん:2007/02/09(金) 16:34:20
あー、S!アプリプラグインの設定でエミュのパスが無効になる。
どうすりゃいいんだorz

惜しいが、やっぱりProguard&プリプロセスが使えない分、
EclipseMEの使い勝手には及ばんなぁ。


596 :デフォルトの名無しさん:2007/02/09(金) 16:43:56
でも前までの奴にくらべて起動とか早くね?

597 :デフォルトの名無しさん:2007/02/09(金) 23:31:16
eclipseのMEXAプラグイン使ってみたけど
実行できない件。なんかインストールエラーになる

しかも構成および実行の部分でプロジェクトの選択で以前消したプロジェクトがずっとのこってて
それの影響で切り替えらないし

マジつかえねぇwwwwww

598 :デフォルトの名無しさん:2007/02/10(土) 10:30:19
eclipseMEの質問はここでおk?
eclipseMEでWTKのエミュレータ使ってデバグ・実行しようとすると
VMと接続できないってエラーが出てつまずいてんだけど、何処の設定見直せばいい?

WTK単体での動作は問題なく、
EclipseMEでのデバグ・実行以外は問題なく出来てんだけど・・・。
ヒントくれー


599 :デフォルトの名無しさん:2007/02/11(日) 02:27:55
JSCL1.2.2SDKのエミュレータにサスペンド機能があるんですが、
pause()が呼ばれても処理が止まりません。
そういうものなんでしょうか?

600 :デフォルトの名無しさん:2007/02/11(日) 10:25:46
pauseApp()

601 :デフォルトの名無しさん:2007/02/11(日) 15:18:50
すっぽーず

602 :デフォルトの名無しさん:2007/02/11(日) 16:04:05
pauseApp()ですね。間違えました。

603 :デフォルトの名無しさん:2007/02/12(月) 09:14:12
auでJavaが使えるようになるので久しぶりにJava(CLDC1.0+MIDP2.0)を触っているのですが、
ジェネリックを使用したコードを作成したところ、
J2SEではコンパイルできるのですが、KToolbarでは以下のメッセージが出てしまいコンパイルできません。
『総称型は -source 1.3 でサポートされていません
(総称型を使用可能にするには、-source 1.5 を試してください)』

そこで、KToolbarではオプション指定ができないようなので、
サンプルのbuild.batを"-source 1.5"に書き換えて試したところ、
今度は↓のメッセージが表示されてしまいました。
『..\src\Map.java:78: java.lang.Void にアクセスできません。
ファイル java\lang\Void.class が見つかりません。』

ひょっとしてJ2MEではジェネリックって使えないのでしょうか?



604 :デフォルトの名無しさん:2007/02/12(月) 10:57:29
自分でJ2MEって書いてるじゃねぇか。

605 :デフォルトの名無しさん:2007/02/12(月) 11:30:04
CLDCが1.3でCDCが1.4相当のVM仕様じゃなかったか?ホットスポットはオプションだし。

元を糾せば1.1,1.2時代の組み込み向けJavaの仕様を包括的に引っ張ってんだから
5.0の機能が使えるなんて発想がおかしい。

KToolbarの設定のコンパイラに怒られてんなら聞くまでもないだろ


606 :603:2007/02/12(月) 12:03:00
レスありがとう。

KToolbarは「総称型を使用可能にするには、-source 1.5 を試してください」って言うから
何か方法があるかと思ったけど、これもJ2SEのコンパイラだからそう言っているだけなのか。

ということは、JavaってJVMのバージョンが古い限り最新仕様は使えないのか。

あー振り出しに戻った・・・


607 :デフォルトの名無しさん:2007/02/12(月) 16:30:28
>>606
お前VMが仮想マシン語を実行するスタックマシンだって知ってるか?

>「総称型を使用可能にするには、-source 1.5 を試してください」
お前が持ってるコンパイラのメッセージをリダイレクトしただけだ

>JavaってJVMのバージョンが古い限り最新仕様は使えないのか。
javaに限らずなんだろうと実装されてなきゃ使えんだろうが

608 :603:2007/02/12(月) 18:22:36
スタックマシンなのは知ってるけれど、
JVMがJava言語のどの仕様レベルまでをサポートするものなんかは知らんかった。

だから最初はジェネリックにしても、コンパイラの内部的に
<T>とかを指定した型に置き換えたソースを生成してコンパイルするという感じの
C++のテンプレートみたいなものかと思ってた。
(これだったら実行コードが大きくなるけど、VMに特別な機能は必要ないと思うから。)

JVMってIA32みたいなバイトコードを実行するだけのものじゃないんだね。
仕様とVMが関係してくるのはメモリ管理が関わってくるから??
JVMの仕様を知らないので良く分からないけど。

609 :デフォルトの名無しさん:2007/02/12(月) 19:03:07
超初心者なのですが、MEXAの設定されている外部メモリ用フォルダ
にデータを入れて、読み込もうとしてるのですが、
java.lang.SecurityException:
com.j_phone.io.Connector.StorageConnection.read was denied
と出て止まってしまいます。
実際に端末上に落としてみると動くので、MEXAの設定なのかと思っ
ているのですがそれっぽい設定をUnit1+Unit2以外発見できません。
どうするとMEXAでも確認できるでしょうか?


610 :デフォルトの名無しさん:2007/02/12(月) 19:28:00
>609
MIDlet-Vendorを「Aplix」にしてみ。

611 :デフォルトの名無しさん:2007/02/12(月) 19:52:39
>>610
ありがとうございます。
jadとMANIFEST.MFをMIDlet-Vendor: Aplixとしてみたところ
残念ながら変わりませんでした。
直すところがそもそも違うでしょうか??







612 :デフォルトの名無しさん:2007/02/12(月) 20:26:12
auのオープンアプリを作ろうと四苦八苦しているモンです。
初心者以下かもしれませんが、どなたか救いの手を…。

1.Canvasクラスを継承した場合、paint()メソッドを必ずオーバーライドしないとダメ、とモノの本に書いてあったのですが、
ttp://appget.com/contest/au2007/lecture/lesson4.html
では、paint()メソッドがオーバーライドされていないっぽいんです。どういうことなんでしょうか?
2.キー入力の処理を、keyPressed()メソッドとkeyReleased()メソッドで処理しているんですが、
これらのキー押し/離しは、順番通りに来るとは限らないんでしょうか?
3.MIDP2.0の日本語リファレンスって、存在しないんでしょうか?

3連休かけて色々調べたんですが、わからず…誰か助けて…。

613 :610:2007/02/12(月) 20:31:46
>611
直すところはあっている。
その他と言えば

1:
MEXAの

メニュー→オプション→セキュリティ

で「常にTrusted(3rd Party Domain)でインストール」を選択するか
「S!アプリのインストール時に問い合わせ」にしてインストール時に
Trusted(3rd Party Domain)でインストールでインストールする。

2:
MEXAのデータフォルダ(デフォルトでC:\SOFTBANK_MEXA_EMULATOR11\resource\ms)
に「Other documents」がない

これくらいしか思いつかない。

614 :デフォルトの名無しさん:2007/02/12(月) 20:40:20
>>612

> 1.Canvasクラスを継承した場合、paint()メソッドを必ずオーバーライドしないとダメ、とモノの本に書いてあったのですが、
> ttp://appget.com/contest/au2007/lecture/lesson4.html
> では、paint()メソッドがオーバーライドされていないっぽいんです。どういうことなんでしょうか?
URL先のサイトで継承しているのはCanvasクラスではなくGameCanvasクラスだから。


> 2.キー入力の処理を、keyPressed()メソッドとkeyReleased()メソッドで処理しているんですが、
これらのキー押し/離しは、順番通りに来るとは限らないんでしょうか?
普通順番どおりに来るんじゃないの?


> 3.MIDP2.0の日本語リファレンスって、存在しないんでしょうか?
見たことないねぇ。
基本はMIDP1.0と同じだし、なくても問題ないでしょ。


615 :デフォルトの名無しさん:2007/02/12(月) 21:15:11
>>614
凄まじくわかりやすい回答、ありがとうございます!

2については、エミュで順番通りに入ってこないことがあるようで…。
実機ではいまのところ順番通りに入ってきてるんですが、
レアケースで、そういうこともありえるのかなと…。

チラシ裏ですが…
プログラマじゃないんですが、ゲーム作りは一応プロでして、
100万(先のURLのところ)目指して頑張ります。では。

616 :デフォルトの名無しさん:2007/02/12(月) 21:33:53
>プログラマじゃないんですが、ゲーム作りは一応プロ……
なるほど、プログラマを顎で使う方ですか。

617 :デフォルトの名無しさん:2007/02/12(月) 22:28:25
>>614
できました!!
 「常にTrusted(3rd Party Domain)でインストール」を選択
 でいけました。
 ありがとうございます!! 

618 :デフォルトの名無しさん:2007/02/14(水) 15:22:25
wireless toolkitの通信確認がいちいちでるんですけど
これ消せないですか?

619 :デフォルトの名無しさん:2007/02/14(水) 16:27:33
実機でも出るのでしょうがない。


620 :デフォルトの名無しさん:2007/02/15(木) 17:01:20
Sアプリでhttp通信をしてpng画像(実際はpngを結合したdatファイル)を取得すると、
データサイズが少し減ってるんですが、原因知ってる人いたら教えてもらえませんか?

ちなみにエミュレータなら正常に取得できます。
png以外のデータ(jpg、gif、txtをdatにしたもの)でも実機で正常取得できます。

621 :デフォルトの名無しさん:2007/02/15(木) 17:24:04
>>620
Content-Typeを image/gif にしておけばOK。

622 :デフォルトの名無しさん:2007/02/15(木) 17:50:11
ありがとうございます!非常に助かります!

しかし、pngなのになんで"image/gif"にするんですか?
リクエストプロパティがよく分からないので、
よければもう少し説明お願いします。

623 :デフォルトの名無しさん:2007/02/15(木) 18:00:52
>>622
リクエストプロパティじゃなくてサーバの返すレスポンスヘッダのコンテントタイプ。

application/x-java-archive や image/gif などソフトバンクのゲートウェイが
既知のバイナリ形式のものにしておかないと、
テキスト扱いされて間で変造されてしまいますよ、ということ。


624 :デフォルトの名無しさん:2007/02/15(木) 20:35:59
ありがとうございます。
サーバの方で設定しないといけないのですね。

625 :デフォルトの名無しさん:2007/02/16(金) 14:26:03
iアプリからS!アプリへの移植を仕事でしています。

V804N,V804SS,706SCなどで起動もせず落ちるのですが、コンストラクタ等でミスっているのでしょうか。
よろしければ教えて頂きたいです。
少々長いですが、ソースを貼ります。どうか宜しくお願いします。

【MIDlet】
public No() {
dis = Display.getDisplay(this);
canvas = new MainCanvas(this);
dis.setCurrent(canvas);

try{
Dev = DeviceControl.getDefaultDeviceControl();
}catch(Exception e){}
}

626 :デフォルトの名無しさん:2007/02/16(金) 14:26:48
【メイン計算(MIDlet継承)】
public ts(){
     //仮想画面の作成
canvas.img_screen = Image.createImage(ScreenWidth,ScreenHeight);
_g = canvas.img_screen.getGraphics();

//矢をnewする
_arrow = new int[ARROW_MAX][ARROW_POINTER_MAX];
//イメージをnewする
_images = new Image[IMAGE_MAX];

try{
       szServer = getAppProperty("CHECK-URL");
URL = getAppProperty("WINING-URL");
}catch(Exception e){}

//順番をセットする配列をnewする
_turn_table = new int[TURN_TABLE_POINTER_MAX][TURN_TABLE_STATUS_MAX];
//マーク用の配列をnewする
_cricket_mark_table = new int[TURN_TABLE_POINTER_MAX][CRICKET_MARK_MAX];
_arrow_up_pos = new int [ARROW_MAX][2];
_play_data = new int[9][PLAY_POINTER_MAX];
     err_flag = false;
init_comp = false;
member_flag = true;
popFlag = 0;
curSele = 0;
netCheck = 1;
}

627 :デフォルトの名無しさん:2007/02/16(金) 14:28:20
【Canvas】
No _app;
public MainCanvas(No t) {
_app = t;
setCommandListener(this);
try{
    font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL); // デフォルトフォント(tinyフォントクラスにする)
fHeight = font.getHeight(); // デフォルトフォント高さ取得
}catch(Exception e){}

drawX0 = (w - GAME_WIDTH) / 2; // 描画原点x座標
drawY0 = (h - GAME_HEIGHT) / 2; // 描画原点y座標
notBgClrFlag = 0; // 背景クリア禁止フラグOFF
currentKey = 0;
messageDispCounter = 0;
messageDispSpeed = MESSAGE_DSP_WINDOW_OPEN_SPD;
colorCounter = MAX_COLOR;
dspWindowMaxStringNum = (MESSAGE_DSP_WINDOW_W - (MESSAGE_DSP_WINDOW_EDGE + 4)*2) / (fHeight/2);
msecOld = System.currentTimeMillis();
     sBuf = null;
     err_state = 0;
try{
serverProc = _app.getAppProperty("MESSAGE-SV");
}catch(Exception e){
serverProc = null;
}
}
iアプリのほうを作ったのが別の会社で、自分が見た限り凄い妙な作りになっていますが…
お手数ですが見ていただければと思います。

628 :デフォルトの名無しさん:2007/02/16(金) 14:30:48
それと、別のゲームにて、ダウンロードすると「不正なアプリです」と出てDLが出来ないという問題が発生しています。
MIDlet-Nameの文字数や、MIDlet-Descriptionの文字数はクリアしています。

考えられるのが、MIDlet-Descriptionに半角スペースが入ってることぐらいなのですが、
入っているとDL出来ないなどということはあるのでしょうか?

629 :デフォルトの名無しさん:2007/02/16(金) 14:35:12
>>628
検証して報告よろしく

630 :625:2007/02/16(金) 14:46:17
>>629
時間と余裕があれば検証したいところですが、
残念ながらそんな余裕がないんです orz

なんとかしてDLさせないと他のバグ消えてるのになんの意味もありやしない…

MIDlet-Name: リバーシ
MIDlet-Vendor: ○○○
MIDlet-Version: 0.1.0
MIDlet-1: Reversi_sb,icon.png,Reversi
MIDlet-Data-Size: 1000
MIDlet-Jar-URL: Reversi_sb.jar
MIDlet-Jar-Size: 319192
MIDlet-Description: 挟んで 挟んで埋め尽くせ
MIDxlet-API: JSCL-1.2.2
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-Permissions: javax.microedition.io.Connector.http
MIDlet-Icon: /icon.png
MIDxlet-ScreenSize: 0,0

631 :デフォルトの名無しさん:2007/02/16(金) 14:48:30
MIDxlet-API: JSCL-1.2.2
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0

が対象機種で対応しているか確認すべし。

632 :デフォルトの名無しさん:2007/02/16(金) 14:55:02
>>625
> V804N,V804SS,706SCなどで起動もせず落ちるのですが、コンストラクタ等でミスっているのでしょうか。
この機種以外では動いてるということ?

633 :デフォルトの名無しさん:2007/02/16(金) 14:55:17
もれもそこだと思う

その辺の機種は未対応のAPIとか見かける
技術資料見たら対応かどうかわかる


634 :625:2007/02/16(金) 14:56:45
>>632
報告書には、

発生機種
V804N
V804SS
706SC

未発生機種
V902T
V803N

といった感じに書かれています。
発生機種以外全てOKなのかどうかはうちの社の実機が少ないせいで確認できずです orz

635 :625:2007/02/16(金) 15:17:51
>>631,633

発生報告のある機種の技術資料の個別仕様と制限を見比べてみましたが、
引っかかるような部分はありませんでした。

自分が↑に書いた起動しない〜という機種も一緒に調べましたが同様…

636 :デフォルトの名無しさん:2007/02/16(金) 15:26:14
>>630

>MIDlet-1: Reversi_sb,icon.png,Reversi
>MIDlet-Jar-URL: Reversi_sb.jar

MIDlet-1の第三引数はメインjarファイルの名前を書くから
MIDlet-1: Reversi_sb,icon.png,Reversi_sb

が正しいのではない?


637 :デフォルトの名無しさん:2007/02/16(金) 15:31:11
もしGraphicsUtilやオプションな機能を使ってたら
MEXA Coreの804N/804SSは動かない。

MEXA/JSCL利用編PDFを調べると良い。

706SCは知らん。

638 :625:2007/02/16(金) 15:33:59
>>636
えーと…第三引数は実行するクラスファイル名ではありませんでしたっけ?

名前を変えたらエミュレーターですら実行できなくなりました orz

639 :625:2007/02/16(金) 15:38:38
>>637
Regionの部分で使う可能性があったので、差し替えてあります。
他のところは使ってない筈…

640 :625:2007/02/16(金) 15:41:47
と、書いてから改めて見直してみました。

あれ、DeviceControl系(バックライトとバイブレーターに使ってる)って引っかかりますか? orz

641 :636:2007/02/16(金) 15:43:59
>>638
いつもメインクラス名とメインjarファイル名を一緒にしていたので
混同してしまいました。失礼しました。

>>637
804N、804SSは MEXA Unit1とMEXA Unit2に対応していない。
SCシリーズは MEXA Unit1は対応しているが MEXA Unit2は対応していない。

なので、MEXA Unit2の機能のAPIを探せばOKなはず。
なお、GraphicsUtilクラスはMEXA Unit2の機能です。

ついでに SSとSCシリーズがあるが、出しているのはどちらもサムソン電子。
名前は統一してほしいね。


642 :625:2007/02/16(金) 15:50:50
この辺りの資料読むのが久しぶりのせいか見間違えてました。

>>641
Unit2を探していけばいいのですね。有難うございます。


Unit系一個もなかった… orz

643 :641:2007/02/16(金) 15:53:07
>>642
そそ。
ただ、MEXA Unit2のAPIを探すなら
MEXAのAPIリファレンスを見たほうが早いかも。

644 :デフォルトの名無しさん:2007/02/16(金) 15:55:40
MIDP-2.0なら標準でdrawRegion()使えるね。

645 :デフォルトの名無しさん:2007/02/16(金) 15:57:53
import定義はどうなってる?


646 :デフォルトの名無しさん:2007/02/16(金) 15:58:09
>>644
ただし拡縮描画ができないで困る。
この辺がSoftBankの厄介なところ。

647 :625:2007/02/16(金) 16:02:15
>>645
【MIDlet】
import com.j_phone.system.DeviceControl;
import com.jblend.media.smaf.phrase.AudioPhraseTrack;
import com.jblend.media.smaf.phrase.Phrase;
import com.jblend.media.smaf.phrase.PhrasePlayer;
import com.jblend.media.smaf.phrase.PhraseTrack;
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordStore;

648 :625:2007/02/16(金) 16:02:45
【メイン計算(MIDlet継承)】
import java.io.*;
import java.util.Random;
import javax.microedition.io.*;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
import com.j_phone.io.ConnectionException;
import com.j_phone.system.DeviceControl;
import com.jblend.media.MediaImageOperator;
import com.jblend.media.smaf.phrase.Phrase;

649 :デフォルトの名無しさん:2007/02/16(金) 16:03:11
>>646
ああ、そうなのか。
めったに伸縮しないからなぁ。
まぁ厄介っちゃ厄介だわな。

650 :625:2007/02/16(金) 16:03:47
【Canvas】
import java.io.*;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import com.jblend.media.MediaPlayer;

こうなっています。

212 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)