Вопрос

Я получил отчет от пользователя приложения, которое я написал, что он получает 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)

Полная дамп здесь, если я пропустил что-то интересное

Тогда я предполагаю, что, возможно, что-то не так с моим макетом.Это довольно многословно, так что Я размещаю это здесь, вместо того, чтобы наклеивать все это на SO.

Существует tabwidget, где одна вкладка подключена к scrollview, 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 не был загружен через setContentView() в области onCreate() (его планировалось загрузить через Runnable чуть позже).

Затем сначала попробуйте на самом деле нарисовать такую не полностью обработанную TabActivity на экране, вызвавшую сбой с NullPointerException в android.widget.TabWidget.dispatchDraw(TabWidget.java:173)

Вы должны загрузить XML или создать экземпляр TabHost и заполнить newTabSpecs программно, прежде чем onCreate завершится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top