سؤال

لقد كتبت midlet التي تقوم بعدة أشياء "متقدمة": جلب الصور من الويب، مما يغير حجمها، مما يوفرها على الهاتف، وعرضها.

يعمل كل هذا تماما في محاكي Nokia S60 3rd Edition FP1. يحتوي هذا الجهاز على دعم MIDP 2.0 و CLDC 1.1 (أيضا JSR75، الذي أحتاجه من أجل حفظ الملفات). كما أنه يعمل كما ينبغي على نوكيا E71 (الجهاز البدني).

ثم حاولت تشغيل midlet في العديد من المحففات الأخرى. واحد منهم، defaultcldcjtwiphone2 من Java Me SDK 3.0، يدعي أيضا دعم MIDP 2.0 و CLDC 1.1. ليس لديها jsr75، والتي تفسر لماذا "لا يمكن حل الملفات الخاصة بنوع".

ومع ذلك، لا يفسر هذا السبب في السبب.

الأخطاء الفعلية التي أحصل عليها:

  • الأسلوب Ceil (مزدوج) غير محدد لنوع الرياضيات
  • طريقة deleteall () غير معروفة لقائمة النوع
  • الطريقة qualsignorecase (سلسلة) غير محددة لسلسلة النوع
  • طريقة GetWidth () غير محددة للنوع المعروض

عندما أنظر إلى MIDP 2.0 (IE JSR118) API (http://java.sun.com/javame/Reference/apis/jsr118/)، أستطيع أن أرى بوضوح كل هذه الأساليب موجودة، مع وجود علامة "منذ" إما MIDP 2.0 أو CLDC 1.1.

لي سؤال: لماذا لا يوجد محاكي مع دعم MIDP 2.0 إمكانية الوصول إلى جميع طرق MIDP 2.0؟ أو بدلا من ذلك، ماذا أفعل الخطأ؟

هل كانت مفيدة؟

المحلول

يبدو أنك تستخدم الأساليب المحددة في CLDC 1.1؛ يجب أن يدعم المحاكي الذي تستخدمه فقط CLDC 1.0 (هذا من شأنه أن يفسر بالتأكيد عدم وجود equalsIgnoreCase() وأي شيء ينطوي double و float بدائريات). انظر واجهة برمجة التطبيقات الكاملة هنا. وبعد ونرى هنا للحصول على قائمة من الاختلافات بين 1.0 و 1.1.

تحرير: بعض الطرق للتحقق من إصدار CLDC من جهازك:

1) تحقق من خاصية نظام microedition.configuration كما هو موضح هنا.

System.out.println("The CLDC version is:  " + System.getProperty("microedition.configuration"));

2) التحقق من وجود فئة مدعومة فقط في 1.1.

try {
    Class.forName("java.lang.ref.WeakReference");
    System.out.println("It's CLDC 1.1");
} catch (ClassNotFoundException e) {
    System.out.println("It's CLDC 1.0");
}

نصائح أخرى

المراجع Eclipse كل من CLDC_1.0.JAR و CLDC_1.1.JAR (بالإضافة إلى MIDP_2.0.JAR و MIDP_2.1.JAR).

لإصلاحها: انتقل إلى النافذة> التفضيلات> Java Me> إدارة الأجهزة> جهازك > تحرير ...> المكتبات> CLDC_1.0.JAR> إزالة

مزيد من التفاصيل يمكنك تجدها هنا http://thompsonng.blogspot.com/2009/09/j2me-setting-eclipse-to-use-cldc-11.html.

حتى بعد أن اخترت جهاز محاكي يدعم CLDC-1.1، مثل DefaultClDCJTWIPHONE2، لا يزال بإمكانك تكوينه لمحاكاة هاتف CLDC-1.0 فقط.

على الأقل هذا ما تبدو عليه خصائص المشروع على NetBeans.

حصلت على نفس المشكلة اليوم (11/03/10) بعد التحديث من: SDK 1.6.0_17 + Eclipse EE 3.5.1 + java_me_platform_sdk_3.0 EA. إلى: SDK 1.6.0_18 + Eclipse ee 3.5.2 + java_me_platform_sdk_3.0.

طريقة Ceil الطريقة (المزدوجة) غير معروفة لنوع الرياضيات، وهي أرضية الطريقة (المزدوجة) غير معروفة عن نوع الرياضيات هي الطريقة ABS (INT) في نوع الرياضيات غير قابلة للتطبيق على الوسائط (المزدوجة) الأسلوب SQRT (مزدوج) غير محدد لنوع الرياضيات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top