안드로이드 네트워크 연결 상태 구현과 관련하여 질문있습니다

조회수 1533회

안드로이드와 php mysql을 이용하여 로그인 회원가입을 구현중에 있습니다. 현재 제가 하려는 부분은 앱을 실행시켰을때 네트워크 연결 유무를 체크해 연결이 되어 있지 않다면 알림 다이얼로그를 띄우고 앱을 종료하게 끔 구현하려 하였으나 onCreate 에 연결확인하는 코드를 붙이면 이상하게 버튼쪽에서 에러가 나서 질문드립니다.

네트워크 연결을 제외한 구현 과정은 메인 액티비티(로그인)에서 쉐어드프리퍼런스에 저장되어있는 아이디와 비밀번호가 있으면 php를 통해 db와 연동해서 자동로그인을 하거나

쉐어드 프리퍼런스에 저장된 정보가 없다면 직접 입력을하고 로그인 버튼을 눌러야지만 db연동이 가능하게끔 구현은 되어 있습니다.

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ConnectivityManager manager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);


        // wifi 또는 모바일 네트워크 어느 하나라도 연결이 되어있다면,
        if (wifi.isConnected() || mobile.isConnected()) {

                    setContentView(R.layout.activity_main);
        } else {
           AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);
            {
                ad.setTitle("네트워크 통신 에러");
                ad.setMessage("네트워크 연결 상태를 확인해주시기 바랍니다.");
                ad.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();
                    }
                });
            }
        }

에러

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • ad.show()를 실수로 빠져있어 수정하였지만 이것과 상관없이 똑같은 에러가 뜨네요 ㅜ,ㅜ

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 올려주신 코드는 문제가 될만한 부분이 없습니다. 에러 로그에 해당하는 Button의 setOnClickListener()를 호출하는 부분의 코드를 올려주실 수 있을까요? 일단 로그 상으로는 Button이 null을 참조하고 있어서 발생하는 것으로 보입니다.

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)