android.support.v7.app.actionBar所有方法抛出空指针异常

时间:2014-06-25 09:35:01

标签: android android-actionbar

我在ActionBarActivity中有一个TabActivity。当我调用getSupportActionBar()setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)之类的方法时,ActionBarActivity会抛出NPE。

我花了很多时间来搜索stackoverflow但没有工作。

  1. 我的风格是Theme.AppCompat.Light
  2. 我没有隐藏actionBar
  3. actionBar不为null(我已调试它)。
  4. 上述所有内容在Android 2.3上都很完美,但4.3。
  5. 代码:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_news);
    
        bar = getSupportActionBar();
        (line 38)bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        bar.setDisplayShowTitleEnabled(false);
        bar.setDisplayShowHomeEnabled(false);
        pager = (ViewPager) findViewById(R.id.news_pager);
        urlGenerator = new UrlGenerator("getNewsClasses");
        pagerAdapter = new NewsPagerAdapter(getSupportFragmentManager());
        pager.setAdapter(pagerAdapter);
        pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
             @Override
                public void onPageSelected(int position) {
                    bar.setSelectedNavigationItem(position);
                }
        });
    }
    

    错误:

    Caused by: java.lang.NullPointerException
    at android.support.v7.app.ActionBarImplICS.setNavigationMode(ActionBarImplICS.java:229)
    at android.support.v7.app.ActionBarImplJB.setNavigationMode(ActionBarImplJB.java:20)
    at com.ccw.estate.news.NewsActivity.onCreate(NewsActivity.java:38)
    at android.app.Activity.performCreate(Activity.java:5133)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
    ... 24 more
    

    清单:

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
     <activity
            android:name="name"
            android:label="label" >
      </activity>
    </application>
    

    AppTheme:

    <style name="AppTheme" parent="Theme.AppCompat.Light">
    

    谁知道它是怎么回事。谢谢!

1 个答案:

答案 0 :(得分:3)

您是否添加了ActionBarActivity的属性(android:windowNoTitle)? 添加&#34; android:windowNoTitle&#34;表示没有创建操作栏。因此getSupportActionBar()将返回null。

相关问题