سؤال

لقد تم تباطؤ التعلم وبناء أول الروبوت التطبيق.أنا جديدة جدا جافا ولكن قد فعلت بالفعل عدة مشروعات في C# ، VB.NET (مرة في اليوم) ، Objective-C (6 تطبيقات في المتجر) و Fortran (waaaaaaaaaaaaaaaaaaaay مرة في اليوم ;)

لذلك أنا تلقيت للتو من الخارج htc أسطورة (أنا لست في الولايات المتحدة) ، التي اشتريتها من أجل أن يكون لائق منتصف مستوى الجهاز من أجل التنمية (انها تعمل غير الجذور adnroid 2.1)

التطبيق لقد تم تطوير المستوى المستهدف 4 (الروبوت 1.6).ويستخدم 5 Mb بيانات sqlite3 مع .mp3 التمديد لتجنب الضغط داخل apk السليم نسخ من الأصول إلى مجلد النظام.

كل شيء يعمل بشكل جيد على المحاكي على جهاز أرى أن حجم ملف التطبيق بعد نسخ قاعدة البيانات يطابق تماما ما أراه على المحاكي.

الآن على النشاط الرئيسي مع عرض القائمة و الدوار ، لقد ربط بعض البيانات من خلال اثنين من مجموعة محولات.عند تشغيل الجهاز كل شيء يعمل بسلاسة.ولكن عند محاولة تشغيل على الجهاز هذا الجزء من التعليمات البرمجية:

public class mainAct extends Activity implements OnItemSelectedListener, TextWatcher, OnItemClickListener
{   
        /** members */
        //private EditText searchtext;
        private ListView designations;
        private ArrayAdapter<String> adapterShapes;
        private ArrayAdapter<String> adapterTypes;
        private Spinner types;
      .  
      .  
      .    
    public void onCreate(Bundle savedInstanceState)   
    {  
      .  
      .  
      .    
        // DESIGNATIONS  
        // 
        adapterShapes = new ArrayAdapter<String>(this,R.layout.list_item,shapes);       // custom TextView Adapter  
        designations=(ListView)findViewById(R.id.designations);
        Log.e("MAIN.ACCT", "ok to 172");
        designations.setAdapter(adapterShapes);
        Log.e("MAIN.ACCT", "ok to 174");
        designations.setOnItemClickListener(this);

        // TYPES
        //
        adapterTypes=new ArrayAdapter<String>(this,R.layout.spinner_item,DT.get().typesInLibrary);
        types=(Spinner)findViewById(R.id.types);
        types.setAdapter(adapterTypes);
        types.setOnItemSelectedListener(this);
      .  
      .  
      .  
    }
}

كل التسميات.setAdapter(adapterShapes);
& أنواع.setAdapter(adapterTypes);

أعطني استثناء مؤشر فارغة.

أنا باستخدام الكسوف تحت ماك ، LogCat نافذة يلقي:

06-25 18:41:37.842:خطأ/AndroidRuntime(9523):غير مسك معالج:الموضوع الرئيسي الخروج بسبب غير مسك استثناء

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):java.لانغ.RuntimeException:غير قادر على بدء النشاط ComponentInfo{com.davidhomes.الصلب/com.davidhomes.الصلب.mainAct}:java.لانغ.NullPointerException

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.ActivityThread.performLaunchActivity(ActivityThread.java:2596)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في

الروبوت.التطبيق.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.ActivityThread.الوصول$2200(ActivityThread.java:126)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.ActivityThread$H. handleMessage(ActivityThread.java:1932)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.نظام التشغيل.معالج.dispatchMessage(معالج.java:99)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.نظام التشغيل.وبير.حلقة(بير.java:123)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.ActivityThread.الرئيسية(ActivityThread.java:4595)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في java.لانغ.تعكس.الأسلوب.invokeNative(أصلي طريقة)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في java.لانغ.تعكس.الأسلوب.الاحتجاج(الأسلوب.java:521)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في com.الروبوت.الداخلية.نظام التشغيل.ZygoteInit$MethodAndArgsCaller.تشغيل(ZygoteInit.java:860)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في com.الروبوت.الداخلية.نظام التشغيل.ZygoteInit.الرئيسية(ZygoteInit.java:618)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في dalvik.النظام.NativeStart.الرئيسية(الأم طريقة)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):سببها:java.لانغ.NullPointerException


-------------------------------------------------------------- 06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في com.davidhomes.الصلب.mainAct.onCreate(mainAct.java:183)

--------------------------------------------------------------

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.الأجهزة.callActivityOnCreate(الأجهزة.java:1047)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):في الروبوت.التطبيق.ActivityThread.performLaunchActivity(ActivityThread.java:2544)

06-25 18:41:37.891:خطأ/AndroidRuntime(9523):...11 المزيد

06-25 18:46:38.252:خطأ/ActivityManager(99):فشلت مجموعة أعلى التطبيق تغير!

خط 183 أول setAdapter دعوة (التسميات.setAdapter(adapterShapes);), عندما يعلق الأمر الثاني setAdapter هو كسر رمز

أنا فقدت قليلا هنا, محولات العرض المناسبة عدد من البنود على السجل النافذة عند تشغيل من محاكاة الجهاز.

أعترف أنني مستجد سواء جافا أندرويد, لذلك أي مساعدة هي موضع تقدير كبير.

تحياتي
ديفيد

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

المحلول 2

عفوا!كان خطأي كل جانب ، على نحو ما كان لي اثنين من تخطيطات (واحد لقرارات مختلفة) ، تستخدم على جهازي لم المناسبة ListView الدوار الهوية.أن تخطيط البديل هو انهيار في مجلد و لقد نسيت حول هذا الموضوع (كنت قد توقفت تطوير التطبيق لمدة 2 شهر حتى حصلت فعلا جهاز اختبار).

واحدة تعمل بشكل جيد تم تثبيت على جهاز محاكاة ولكن ليس على الجهاز والعكس صحيح, غريب كما جيدة مباريات القرار من جهازي (أنا متأكد أنا أيضا في عداد المفقودين شيء هناك ولكن هذا ليس مهما الآن)

لا يزال بفضل كريس لافتا إلي أن تبحث في لاغية قيمة العائد على findViewById.كونها جديدة على الروبوت فقدت كما أن تبدأ

مع أطيب التحيات ديفيد

نصائح أخرى

كما ربما كنت قد اكتشفت نفسك بعض المتغير باطل.للأسف لا يوجد مصدر واضح من NullPointerException في التعليمات البرمجية الخاصة بك.

ولذلك يجب عليك أولا محاولة تحديد ما هو متغير null وبالتالي التسبب في الاستثناء.

على سبيل المثال ، findViewById إرجاع null إذا كان لا يمكن العثور على إطلالة, لذا قد تحتاج إلى الاختيار المزدوج ListView و Spinner ويجري initialised بشكل صحيح.

بالطبع, قد تكون المشكلة مع ArrayAdapters, لذا يجب عليك أيضا التحقق منها ، ولكن من سؤالك يبدو كما لو كنت قد فعلت ذلك بالفعل.

بمجرد (ونحن) تعرف بالضبط أين NullPointerException يحدث ، سيكون من الأسهل أن تعطي المشورة أكثر تحديدا

أعرف أن هذا هو عملية طويلة إغلاق الموضوع.ومع ذلك لقد صادفت نفس المشكلة و هذا المنصب لم تجب عليه.

ما فعلته كان سخيف جدا.نسيت أن أضيف إشارة إلى xml.ie.setContentView(R. layout.إعدادات);

يبدو في الواقع مثل المشاركة الأصلية قد يكون أيضا نسيت هذا حتى ظننت أنني سوف فقط بعد ذلك.الهتافات.

كان عندي نفس المشكلة.أنا وضعت السجل.د الرسائل في طباعة كل كائن.اتضح أن بلدي ListView كائن كان "لاغية".وكان السبب في ذلك كان خطأ XML النشاط المدرجة في SetContentView.أعتقد أن أسهل طريقة لتصحيح هذه المشكلة هو الحفاظ على وضع في السجل.د الرسائل حتى يمكنك العثور على الكائن/المتغير الذي هو "لاغية".

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