- 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あたりにリンク集
- 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
実機で試してみますね。 ありがとうございました。
- 382 名前:377 mailto:sage [04/09/29 21:47:45]
- 実機で試してみると、年輪のような表示にはなりませんでした。
それは解決したのですが、また問題が出たので質問です。 エミュでは展開出来たのですが、実機では40k以上の画像等のファイルはエラーが出て表示が出来ませんでした。 テストには602SHを使っていて、601SHならPNGの展開サイズが最高で512kまでと書いてあったのでいけると思うのですが…。 それと、MIDlet-OCLをJSCL-1.2.2に設定しておくと602SH/601TのP6型以外で起動不可になりますか? 質問ばかりで申し訳ないのですが、よろしくお願いします。
- 383 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:19:33]
- エラーの内容が分からんのでとりあえずその例外を描画してみては?
catch(Exception e){ while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ
- 384 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:22:33]
- ごめん、途中で書き込んじゃった
catch(Exception e){ Graphics.setColor(0,0,0); Graphics.fillRect(0,0,240,240); Graphics.setColor(255,255,255); Graphics.drawString(""+e.toString()); while(DeviceControl.getDeviceState(DeviceControl.KEY_STATE) > 0) //キー入力があるまで無限ループ }
- 385 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:25:32]
- drawStringの引数Stringだけになってた(汗
x,y,アンカーを脳内で入れといてください。 それと追記 例外とかの文だと長すぎてはみ出す可能性が高いんで 20文字目ぐらいでString#substring()使って文字列を区切って描画したほうがいい。
- 386 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:41:19]
- エラーの内容表示しないでも、それってサイズ制限に引っかかってるだけじゃないか?
確か40KBより大きいファイルは扱えなかったような気がする。
- 387 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:43:35]
- 386追記
40KBより大きい画像とかのファイルをSD経由で読み込んでみ? エラーで表示されない 勘違いだったらスマソ
- 388 名前:デフォルトの名無しさん mailto:sage [04/09/29 23:02:08]
- ttp://appget.com/vf/pc/apview_021014.htm
このアプリで40kb+の着メロ再生できるから開く方法はあるっぽいな。
- 389 名前:382 mailto:sage [04/09/29 23:12:21]
- 皆さんありがとうございます。
>>383-385 コード追加してみましたが、getDeviceState(int)をstaticコンテキストから参照することはできません。 と出てビルド出来ません…。 すんません、自力じゃ分かりませんでした…。 >>386-387 SDカードにアプリで読み込もうとしていたファイルを入れて開こうとしたところ、「40Kを超えるファイルのため再生できません」と出ました。 40K以上の着メロも同様のエラーで無理みたいです。
- 390 名前:デフォルトの名無しさん mailto:sage [04/09/30 03:34:03]
- >>389
どんなAPIで40KB超えのファイルを開こうとしてる? StorageConnection#openInputStream() でなら、40KB制限なんて引っかからないと思う。 FileUtility は使ったことないのでシラネ、 FileUtility#play は、「ネイティブアプリケーションで再生します」とか書いてるから、 ネイティブの制限(SHなら40KB/Tなら64KB)の制限を受けるんじゃないかな。
- 391 名前:デフォルトの名無しさん mailto:sage [04/09/30 15:38:50]
- >>389
ちゃんと調べた訳じゃないけどStorageConnection#openInputStream()の仕様で制限掛かってるならエミュでも開けないと思うし、 何か機種独自の仕様かなにかに引っかかってるんじゃないかな それ以外のAPIは使ったことないし知らん ちなみに漏れの602SHでもStorageConnection#openInputStream()で画像読み込んだら例外出て開けんかった。 もしかしたら ttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/jpeg/JpegData.html もしくはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/png/PngData.html これ使えば開けるかもピープ限界まで開けるかも 漏れの考えも間違ってるかもしれないから分かる人よろ
- 392 名前:391 mailto:sage [04/09/30 15:42:34]
- 訂正
JpegPlayerとかはttp://potter.s5.xrea.com/vappli/doc/P5/com/jblend/media/MediaImageOperator.html このMediaImageOperatorってので使うぽい 間違ってたらすまそ
- 393 名前:382 mailto:sage [04/09/30 18:54:42]
- 遅くなりました、すいません。
>>390 ファイルの取得はボーダのサンプルを流用してやってます まず、byte[] data=read(ImgURL+".png")で呼び出して (長いので必要そうな所だけ。) conn = (StorageConnection)Connector.open(url); InputStream is = null; ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); is = conn.openInputStream(); byte[] buff = new byte[(int)conn.getLength()]; int readed = -1; while ( (readed = is.read( buff )) != -1 ) { baos.write( buff, 0, readed ); return buff; } } …catch/finallyなどが続く 最後のreturnでbuffの中身を呼び出し元に戻して、viewImg=Image.createImage(data,0,data.length)で画像にしてます。 多分これでいけてると思うのですが…ここに問題無ければ他の部分かな…。 >391 棒打のサンプル見てみますね。
- 394 名前:デフォルトの名無しさん mailto:sage [04/09/30 21:01:53]
- 画像サイズがデカイと無理です、多分。
ヒープの問題。
- 395 名前:デフォルトの名無しさん mailto:sage [04/09/30 21:20:02]
- >>382
参考までに聞きたいが、 このソースで実機で40KBより小さいサイズの画像は問題なく読めてるの?
- 396 名前:382 mailto:sage [04/09/30 22:02:46]
- 読めてます。
- 397 名前:デフォルトの名無しさん mailto:sage [04/09/30 23:05:13]
- >>394
ピープは1200kぐらいあるはずだからよほど大きくない限り読めるはずだろ
- 398 名前:デフォルトの名無しさん mailto:sage [04/09/30 23:12:19]
- 480x640程度でダメなはず。
エミュ確認のみ。
- 399 名前:デフォルトの名無しさん mailto:sage [04/09/30 23:20:10]
- 画面カラーが32bitだと、32bitに展開されるとかじゃない?
- 400 名前:デフォルトの名無しさん mailto:sage [04/09/30 23:22:10]
- 32bitビットマップね。
- 401 名前:382 mailto:sage [04/09/30 23:38:43]
- >>398
240x320のPNGファイルで、エミュでは問題無く表示されています。 >>399 画面カラーというのは、携帯実機の?PCの?
- 402 名前:デフォルトの名無しさん mailto:sage [04/10/01 00:25:00]
- Imageの画素の深度は機種依存のハズ。元画像のサイズ・深度はあんま関係ないぽ。
240×320がOKだったとかいわずに、Image作成前と作成後でヒープ残量はかってみ。 long memory = Runtime.getRuntime().freeMemory(); 他キャリアで悪いがPhase3エミュでcreateImage(100,100)で20KB程度、 つまり1画素あたり2B使ってる計算。これでいくとヒープ2MBの機種で100万画素まで、 大体QVGA(320×240≒8万)の10倍程度が限界。もちろん画像のみの話だけど。 そのJPGがそれ(QVGA×10)を超えてないか確認してみそ。深度深けりゃもっと小さいが。
- 403 名前:382 mailto:sage [04/10/01 01:02:06]
- >>402
計算ニガテだけどがんばって計算してみますね…。 ちなみに表示させようとしてるのはPNG形式の画像です
- 404 名前:デフォルトの名無しさん mailto:sage [04/10/01 01:53:02]
- ちょい質問。
byte型のデータをint型に変換するのってどうすりゃいいの? 直接代入しただけじゃあたりまえだが無理だった(´д`;)
- 405 名前:390 mailto:sage [04/10/01 02:11:41]
- 念押しときますが、V601TでStorageConnection#openInputStream()で制限引っかかることはなかったです。
少なくとも500KB超えたファイルもいけてる。 やっぱ、Image作るところかbyte確保するとこ(byte[] buff = new byte[(int)conn.getLength()];)で ヒープ不足で引っかかってる気がするんだが。 いずれにしても、どこでどんな例外が出てるかを確認するのが先決だと思う。 >>404 直接代入できますが。
- 406 名前:デフォルトの名無しさん mailto:sage [04/10/01 02:33:17]
- むむむー
直接代入しようとすると互換性のない型って出てビルド出来ん んで、検出値がbyte[]で期待値がintになってる 解釈違いかなあ
- 407 名前:デフォルトの名無しさん mailto:sage [04/10/01 02:53:44]
- >>406
配列じゃない変数に配列が代入できるわけないだろ どういうことがやりたいんだ?
- 408 名前:デフォルトの名無しさん mailto:sage [04/10/01 03:09:07]
- フェーズプレイヤーで再生するデータを外部メモリから読んで、再生させたい。
393のソース流用したんだけど、int spfdata = read("file:///mc/spf/sound.spf"); ってすると「互換性のない型」ってエラーが出る。 さてどうしたものか…。
- 409 名前:デフォルトの名無しさん mailto:sage [04/10/01 03:25:25]
- >>408
>>393のソースを参考にread()ってメソッド作ったんなら戻り値はbyte[]型でしょ。 (byte[] buff = new byte[〜]; で return buff; なんだから) それをint型で受ければエラーは当たり前。byte[]型の変数で受けなきゃ。
- 410 名前:デフォルトの名無しさん mailto:sage [04/10/01 03:36:03]
- んーむ…
こんなソースになったけど駄目っぽい…。 2箇所エラーがあるみたいです すいません、よろしければおかしい所の修正お願いします。。。 player=PhrasePlayer.getPlayer(); byte[] spfdata; spfdata = read("file:///mc/spf/sound.spf"); int spffile = spfdata; //ここで「互換性のない型」エラー data=new Phrase(spffile); //ここで「シンボルを解決できません」エラー track0=player.getTrack(); track0.setPhrase(data); track0.play();
- 411 名前:デフォルトの名無しさん mailto:sage [04/10/01 05:31:06]
- >>410
>int spffile = spfdata; だから、なんでbyte[]型をint型に代入しようとするのさ。 しかもPhraseのコンストラクタでint型を引数に取るものはない。 無意味な int spffile = spfdata; を書かずにspfdataを引数にすればいい。
- 412 名前:382 mailto:sage [04/10/01 16:03:13]
- 読み込みエラー、なんとか解決しました本当にありがとうございます
- 413 名前:デフォルトの名無しさん mailto:sage [04/10/01 16:45:05]
- >>411
遅くなった。 どっかでint型のデータを引数として渡せとか書いてあったのが頭の端っこにあったからかなり勘違いしてたっぽい。 spfdataを直接渡してやればちゃんと再生できました。 ところで、2種類の音を再生して、片方の音だけループするようにしたいのだけど ループの処理は常に再生されるか確認して停止してたらまた再生させる って処理でいいのかな?
|

|