0

Description: Though I have declared all the activities in the manifest, I'm still getting a Null Pointer Exception

How can I solve this:

Mycode:

MainActivity.java

public class MainActivity extends FragmentActivity implements TabListener  {

    ViewPager viewPager;
    ActionBar actionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set the view from main_fragment.xml
        setContentView(R.layout.main_activity);

        actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        ActionBar.Tab tab1=actionBar.newTab();
        tab1.setText("Tab1");
        tab1.setTabListener(this);

        ActionBar.Tab tab2=actionBar.newTab();
        tab1.setText("Tab2");
        tab1.setTabListener(this);

        ActionBar.Tab tab3=actionBar.newTab();
        tab1.setText("Tab3");
        tab1.setTabListener(this);

        actionBar.addTab(tab1);
        actionBar.addTab(tab2);
        actionBar.addTab(tab3);

        }


    @Override
    protected void onDestroy() {
        Log.d(getClass().getName(), "[onDestroy(activity)]");
        super.onDestroy();
    }


    @Override
    public void onTabReselected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onTabSelected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onTabUnselected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }

}

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.findmybuffet.restaurant_module"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="18" />
        <uses-permission android:name="android.permission.INTERNET"/>


    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Log:

02-09 23:48:42.309: E/AndroidRuntime(1082): FATAL EXCEPTION: main
02-09 23:48:42.309: E/AndroidRuntime(1082): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.findmybuffet.restaurant_module/com.findmybuffet.restaurant_module.MainActivity}: java.lang.NullPointerException
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.os.Looper.loop(Looper.java:137)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread.main(ActivityThread.java:4340)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at java.lang.reflect.Method.invokeNative(Native Method)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at java.lang.reflect.Method.invoke(Method.java:511)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at dalvik.system.NativeStart.main(Native Method)
02-09 23:48:42.309: E/AndroidRuntime(1082): Caused by: java.lang.NullPointerException
02-09 23:48:42.309: E/AndroidRuntime(1082):     at com.findmybuffet.restaurant_module.MainActivity.onCreate(MainActivity.java:24)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.Activity.performCreate(Activity.java:4465)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-09 23:48:42.309: E/AndroidRuntime(1082):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
02-09 23:48:42.309: E/AndroidRuntime(1082):     ... 11 more

EDIT

MainActivity.java

public class MainActivity extends FragmentActivity implements TabListener  {

    ViewPager viewPager;
    ActionBar actionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set the view from main_fragment.xml
        setContentView(R.layout.main_activity);

        actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        ActionBar.Tab tab1=actionBar.newTab();
        tab1.setText("Tab1");
        tab1.setTabListener(this);

        ActionBar.Tab tab2=actionBar.newTab();
        tab2.setText("Tab2");
        tab2.setTabListener(this);

        ActionBar.Tab tab3=actionBar.newTab();
        tab3.setText("Tab3");
        tab3.setTabListener(this);

        actionBar.addTab(tab1);
        actionBar.addTab(tab2);
        actionBar.addTab(tab3);

    }


    @Override
    protected void onDestroy() {
        Log.d(getClass().getName(), "[onDestroy(activity)]");
        super.onDestroy();
    }


    @Override
    public void onTabReselected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onTabSelected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onTabUnselected(Tab arg0, android.app.FragmentTransaction arg1) {
        // TODO Auto-generated method stub

    }

}

Log::

02-10 00:00:30.409: E/AndroidRuntime(1132): FATAL EXCEPTION: main
02-10 00:00:30.409: E/AndroidRuntime(1132): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.findmybuffet.restaurant_module/com.findmybuffet.restaurant_module.MainActivity}: java.lang.NullPointerException
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.os.Looper.loop(Looper.java:137)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread.main(ActivityThread.java:4340)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at java.lang.reflect.Method.invokeNative(Native Method)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at java.lang.reflect.Method.invoke(Method.java:511)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at dalvik.system.NativeStart.main(Native Method)
02-10 00:00:30.409: E/AndroidRuntime(1132): Caused by: java.lang.NullPointerException
02-10 00:00:30.409: E/AndroidRuntime(1132):     at com.findmybuffet.restaurant_module.MainActivity.onCreate(MainActivity.java:24)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.Activity.performCreate(Activity.java:4465)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-10 00:00:30.409: E/AndroidRuntime(1132):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
02-10 00:00:30.409: E/AndroidRuntime(1132):     ... 11 more
Devrath
  • 42,072
  • 54
  • 195
  • 297

2 Answers2

2

I don't think you've made tab2 and tab3 not null. You've made tab1 named tab2 and tab3. So change it to this code:

    tab1.setText("Tab1");
    tab1.setTabListener(this);

    ActionBar.Tab tab2=actionBar.newTab();
    tab2.setText("Tab2");
    tab2.setTabListener(this);

    ActionBar.Tab tab3=actionBar.newTab();
    tab3.setText("Tab3");
    tab3.setTabListener(this);

Also, before you call setContentView you need to call:

requestWindowFeature(Window.FEATURE_ACTION_BAR);

This will make your getActionBar() call not return null.

hichris123
  • 10,145
  • 15
  • 56
  • 70
  • [+1] for pointing out the typo error .... please see the edit .... i made changes still the error persists ! – Devrath Feb 09 '14 at 18:33
  • @NewBie See my edit, I think you need to call `requestWindowFeature(Window.FEATURE_ACTION_BAR);` before you call `setContentView`. – hichris123 Feb 09 '14 at 18:36
1

Looks like the call to getActionBar() is returning null. You should check your style/theme and make sure it's not affecting the display of the title bar. See similar question, here: getActionBar() returns null

Community
  • 1
  • 1
brwngrldev
  • 3,664
  • 3
  • 24
  • 45