سؤال

لقد تلقيت تقرير من مستخدم تطبيق كتبته أنه يحصل على FC كلما بدأ نشاط معين. لم أتمكن من إعادة إنتاج المشكلة على المحاكي أو على HTC Hero (تشغيل 1.5)، ولكن هذا المستخدم الذي يشغل HTC Magic (مع 1.6) يواجه هذا الخطأ في كل مرة.

ما يزعجني هو أنه لا توجد خطوة واحدة في StackTrace تتضمن بالفعل أي رمز في تطبيقي (com.filmtipset)

01-07 00:10:26.773 I/ActivityManager(  141): Starting activity: Intent { cmp=com.filmtipset/.ViewMovie (has extras) }
01-07 00:10:27.023 D/AndroidRuntime( 2402): Shutting down VM
01-07 00:10:27.023 W/dalvikvm( 2402): threadid=3: thread exiting with uncaught exception (group=0x4001e170)
01-07 00:10:27.023 E/AndroidRuntime( 2402): Uncaught handler: thread main exiting due to uncaught exception
01-07 00:10:27.083 E/AndroidRuntime( 2402): java.lang.NullPointerException
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.TabWidget.dispatchDraw(TabWidget.java:173)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.View.draw(View.java:6552)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.View.draw(View.java:6552)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.FrameLayout.draw(FrameLayout.java:352)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1883)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.draw(ViewRoot.java:1332)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.performTraversals(ViewRoot.java:1097)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.os.Handler.dispatchMessage(Handler.java:99)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.os.Looper.loop(Looper.java:123)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.app.ActivityThread.main(ActivityThread.java:4320)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at java.lang.reflect.Method.invokeNative(Native Method)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at java.lang.reflect.Method.invoke(Method.java:521)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
01-07 00:10:27.083 E/AndroidRuntime( 2402): at dalvik.system.NativeStart.main(Native Method)

تفريغ كامل هنا إذا فاتني أي شيء مهم

أنا أظن، إذن، أنه قد يكون هناك خطأ في تخطيطي. انها فكر جدا، لذلك أنا نشرها هنا, ، بدلا من لصق كل شيء على ذلك.

هناك tabwidget، حيث يتم توصيل علامة تبويب واحدة بالتفريك، svFilmInfo, ، والتخطيط الخطي llComments.

يتم ملء مضيف علامة التبويب على هذا النحو:

Drawable commentSelector = getResources().getDrawable(R.drawable.tabcomment);
Drawable infoSelector = getResources().getDrawable(R.drawable.tabinfo);

mTabHost = getTabHost();
mTabHost.getTabWidget().setBackgroundColor(Color.BLACK);
mTabHost.addTab(mTabHost.newTabSpec("tabInfo").setIndicator("Filminfo", infoSelector).setContent(R.id.svFilmInfo));
mTabHost.addTab(mTabHost.newTabSpec("tabInfo").setIndicator("Kommentarer", commentSelector).setContent(R.id.llComments));

نظرا لأنني لا أستطيع إعادة إنتاج الخطأ بنفسي، وبما أنني لا أستطيع أن أجد أي ذكر في تتبع المكدس لما قد يتسبب في الخطأ، لا أعرف من أين أبدأ في استكشاف الأخطاء وإصلاحها.

كنت أقدر أي مؤشرات.

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

المحلول

أركض في آثار المكدس من هذا القبيل عندما يكون لدى الناس TabHost في تخطيطهم ولكن لا تضيف TabSpecs لذلك. تظهر لك الكود حيث تضيف علامات تبويب - هل أنت متأكد من أنه يتم استدعاؤه في جميع الظروف؟

نصائح أخرى

حصلت على نفس الخطأ في طلبي، ولكن فقط على Android 1.6 والأعلى - عملت في 1.5.

السبب: لم يتم تحميل نشاط التطبيق الأولي Tabactivity ولكن تخطيط XML مع تطبيق Tabhost Widget لم يتم تحميل عبر SetContentView () في نطاق OnCreate () (كان من المقرر تحميله عبر Runnable لاحقا قليلا).

ثم حاول أولا أن ترسم فعلا مثل هذه الطبقة غير المعالجة بالكامل على الشاشة تسبب تعطل مع nullpointerException في Android.widget.tabwidget.dispatchdraw (tabwidget.java:173)

يجب عليك تحميل XML أو Instantiate Tabhost وملء newtabspecs برمجيا قبل انتهاء OnCreate.

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