안드로이드 툴바 적용시 프로세스가 강제 종료됩니다.


한 엑티비티에서 startactivity를 통해 다른 엑티비티로 넘어온 후 툴바를 적용하면 어플 실행시 넘어가는 부분에서 예상치못한 오류로 어플이 강제 종료됩니다.. 어느부분이 잘못된걸까요?

public class ServiceActivity extends AppCompatActivity {

    private Toolbar mToolbar;
    String ClientTAG = "Client";
    String OptionTAG = "Option";
    private Context context = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_service);
        mToolbar = (Toolbar) findViewById(R.id.toolBar);
        mToolbar.setTitle("tool test");
        mToolbar.setTitleTextColor(Color.WHITE);

        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowHomeEnabled(true);

    }

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

레이아웃은 따로 toolbar 레이아웃을 만든 후 layout_service에 include해주었고 style부분도 수정해 주었습니다.

  • 2016년 07월 31일에 작성됨
    안드로이드 개발

  • 에러메시지를 보여주시는게 더 빠를것 같은데요~ 저같은 경우에는 넘어가는 부분에서 오류가나면 대부분 널포인트에러더군요~    김선우   2016.7.31 23:45     
조회수 151


1 답변


댓글달아주신 분 말씀처럼 에러메시지가 있으면 거의 바로 찾을 수 있을텐데요.

예상가는 부분은 크게 두가지 입니다.

1) layout_service.xml 에 toolbar 가 없는 경우

  • 이런 경우에는 mToolbar 가 null 일 거고, 사용하려고 하면 NPE 가 발생하겠죠.

2) ActionBar 가 없는 경우

  • AppCompatActivity 는 기본적으로 ActionBar(SupportActionBar)를 가지고 있지만, 스타일등에서 NoActionBar 등의 세팅이 되어있는 경우 ActionBar 는 Null 상태가 됩니다.(초기화 하지 않음)
  • 이 경우에도 마찬가지로 getSupportActionBar() 가 Null 이라서 NPE 가 발생할듯합니다.

메뉴 만드는 코드는 보기엔 크게 문제 없어보이네요.

  • 2016년 08월 10일에 작성됨
    노바입니다. 개발 잘하고 싶어요.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close