您的位置:首页 > 移动开发 > Objective-C

Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference

2016-08-03 20:23 936 查看
今天在使用DrawerLayout时遇到了NullPointerException(空指针异常)问题:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.app.ActionBar.hide()’ on a null object reference

贴上错误的代码:

public class MainActivity extends **FragmentActivity** {

private DrawerLayout mDrawerLayout;
private RelativeLayout rightLayout;
private List<ContentModel> list;
private ContentAdapter adapter;
private ImageView leftMenu,rightMenu;
private ListView listView;
private FragmentManager frgmentManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

**getActionBar().hide();**


错误原因:

if you are using the support library then you have to use getSupportActionBar() instead of getActionBar(), and instead of extends Activity you have to extends AppCompactActivity

译文:如果您使用的支持库然后你必须使用 getSupportActionBar() 而不是 getActionBar(),你要继承 AppCompactActivity而不是继承的Activity

修改之后的代码:

public class MainActivity extends **AppCompatActivity** {

private DrawerLayout mDrawerLayout;
private RelativeLayout rightLayout;
private List<ContentModel> list;
private ContentAdapter adapter;
private ImageView leftMenu,rightMenu;
private ListView listView;
private FragmentManager frgmentManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

**getSupportActionBar().hide();**


修改之后编译结果正确。。。

StackOverFlow的解释:

[]http://stackoverflow.com/questions/27235501/actionbar-giving-nullpointerexception]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异常 Android
相关文章推荐