いくつかの「高度な」ことを行う MIDlet を作成しました。Web から画像を取得し、サイズを変更し、電話に保存し、表示します。
これはすべて、Nokia S60 3rd Edition FP1 エミュレーターで完全に機能します。このデバイスは、MIDP 2.0 および CLDC 1.1 をサポートしています (ファイルを保存するために必要な JSR75 もサポートしています)。また、Nokia E71 (物理デバイス) でも正常に動作します。
次に、他のいくつかのエミュレーターで MIDlet を実行しようとしました。それらの 1 つである Java ME SDK 3.0 の DefaultCldcJtwiPhone2 も、MIDP 2.0 および CLDC 1.1 のサポートを主張しています。JSR75 がないため、「FileConnection を型に解決できない」理由が説明されています。
ただし、これは、List.deleteAll()、String.equalsIgnoreCase(String)、およびその他のいくつかが未定義である理由を説明していません。
私が得る実際のエラー:
- メソッド ceil(double) はタイプ Math に対して未定義です
- メソッド deleteAll() はタイプ List に対して未定義です
- メソッド equalsIgnoreCase(String) は、タイプ String に対して未定義です
- メソッド getWidth() はタイプ Displayable に対して未定義です
MIDP 2.0 (つまり JSR118) API ( http://java.sun.com/javame/reference/apis/jsr118/ ) を見ると、「since」タグを使用して、これらすべてのメソッドが存在していることがはっきりとわかります。 MIDP 2.0 または CLDC 1.1 のいずれかです。
私の質問: MIDP 2.0 をサポートするエミュレーターがすべての MIDP 2.0 メソッドにアクセスできないのはなぜですか? または、代わりに、私は何を間違っていますか?