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

조회수 2476회

한 엑티비티에서 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.7.31 23:45

1 답변

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

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

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

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

    2) ActionBar 가 없는 경우

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)