Обнаружили с коллегой занятный баг в Android, связанный с работой TabHost.
Суть в следующем. Если после onCreate в вашей TabActivity внутри TabHost не будет создано ни одной корректной вкладки все хозяйство с треском осыпается. Причем стэк очень интересный. По нему сложно выявить причину ибо в нем нет ничего, кроме кода ядра ОС.
Выглядит примерно так
Exception: java.lang.NullPointerException
Message: null
Stacktrace:
android.widget.TabWidget.dispatchDraw(TabWidget.java:241)
android.view.ViewGroup.drawChild(ViewGroup.java:1565)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1294)
android.view.ViewGroup.drawChild(ViewGroup.java:1565)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1294)
android.view.ViewGroup.drawChild(ViewGroup.java:1565)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1294)
android.view.View.draw(View.java:6588)
android.widget.FrameLayout.draw(FrameLayout.java:383)
android.view.ViewGroup.drawChild(ViewGroup.java:1567)
android.view.ViewGroup.dispatchDraw(ViewGroup.java:1294)
android.view.View.draw(View.java:6588)
android.widget.FrameLayout.draw(FrameLayout.java:383)
com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1869)
android.view.ViewRoot.draw(ViewRoot.java:1384)
android.view.ViewRoot.performTraversals(ViewRoot.java:1149)
android.view.ViewRoot.handleMessage(ViewRoot.java:1668)
android.os.Handler.dispatchMessage(Handler.java:130)
android.os.Looper.loop(Looper.java:154)
android.app.ActivityThread.main(ActivityThread.java:4416)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:552)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:910)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:668)
dalvik.system.NativeStart.main(Native Method)
Лечится, очевидно, корректной подготовкой табов в onCreate. Что интересно, в 2.2 такого бага уже нет.