안드로이드 툴바 적용시 프로세스가 강제 종료됩니다.
조회수 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부분도 수정해 주었습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
댓글달아주신 분 말씀처럼 에러메시지가 있으면 거의 바로 찾을 수 있을텐데요.
예상가는 부분은 크게 두가지 입니다.
1) layout_service.xml 에 toolbar 가 없는 경우
- 이런 경우에는 mToolbar 가 null 일 거고, 사용하려고 하면 NPE 가 발생하겠죠.
2) ActionBar 가 없는 경우
- AppCompatActivity 는 기본적으로 ActionBar(SupportActionBar)를 가지고 있지만, 스타일등에서 NoActionBar 등의 세팅이 되어있는 경우 ActionBar 는 Null 상태가 됩니다.(초기화 하지 않음)
- 이 경우에도 마찬가지로 getSupportActionBar() 가 Null 이라서 NPE 가 발생할듯합니다.
메뉴 만드는 코드는 보기엔 크게 문제 없어보이네요.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력