Android: NPE in TabSpec setContent(View)

I’m trying to set the content of a tab in my TabHost to be a RelativeLayout (defined in the top-level of one of my XML files).

I’ve tried identifying it both by using R.layout.lobby_tab and R.id.lobby_base (the ID is added as an item in XML declaration).

  • what's the relationship between task and back stack
  • java.lang.AssertionError: Unexpected node Pythonid; nodes=[org.jetbrains.plugins.terminal, org.jetbrains.plugins.javaFX
  • Communication between Fragment and DialogFragment
  • Can I remove Android default link styling in webview
  • Open & Edit PDF files in Android App with APIs
  • Determining Camera Resolution (i.e. Megapixels) Programatically in Android
  • Either way, I get a NullPointerException in the setContent(View) method:

    02-12 22:42:12.907: E/AndroidRuntime(2028): FATAL EXCEPTION: main
    {webs.winbatch.dwd/webs.winbatch.dwd.HostActivity}: java.lang.NullPointerException
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.os.Handler.dispatchMessage(Handler.java:99)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.os.Looper.loop(Looper.java:123)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread.main(ActivityThread.java:3683)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at java.lang.reflect.Method.invokeNative(Native Method)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at java.lang.reflect.Method.invoke(Method.java:507)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at dalvik.system.NativeStart.main(Native Method)
    02-12 22:42:12.907: E/AndroidRuntime(2028): Caused by: java.lang.NullPointerException
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:589)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:584)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.widget.TabHost$TabSpec.setContent(TabHost.java:441)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at webs.winbatch.dwd.HostActivity.setUpTabs(HostActivity.java:20)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at webs.winbatch.dwd.HostActivity.onCreate(HostActivity.java:13)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    02-12 22:42:12.907: E/AndroidRuntime(2028):     ... 11 more
    

    Here is the code that runs to set up the tabs:

        TabHost thost = (TabHost) findViewById(android.R.id.tabhost);
        TabHost.TabSpec spec;
    
        if(thost !=null) {
            spec = thost.newTabSpec("lobby").setIndicator("Lobby").setContent(R.id.lobby_base);
            thost.addTab(spec);
        }
    

    UPDATE (Issue Resolved)

    I needed to add this line to the FrameLayout in the XML file:

    <include layout="@layout/lobby_tab"/>
    

    This resolved the issue. Thanks for your time!

    Related posts:

    GooglePlayServicesUtil vs GoogleApiAvailability
    NullPointerException in onLoaderFinished using SimpleCursorAdapter
    Protect API URL access via hash in Android app
    setHintTextColor() in EditText
    How To Show and hide ActionBar with AppCompat v.7
    Do you have to claim an interface before making a control transfer to Endpoint 0?
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.