마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

핸드폰에 연동하면 프로세스가 종료됩니다..

0 추천
FATAL EXCEPTION: main
                                                 Process: com.example.com.pro, PID: 5317
                                                 java.lang.RuntimeException: Unable to resume activity {com.example.com.pro/com.example.com.pro.Login}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
                                                     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2976)
                                                     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3007)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2373)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:149)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5292)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
                                                  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
                                                     at android.support.v7.internal.app.WindowDecorActionBar.getDecorToolbar(WindowDecorActionBar.java:248)
                                                     at android.support.v7.internal.app.WindowDecorActionBar.init(WindowDecorActionBar.java:201)
                                                     at android.support.v7.internal.app.WindowDecorActionBar.<init>(WindowDecorActionBar.java:176)
                                                     at android.support.v7.app.AppCompatDelegateImplV7.createSupportActionBar(AppCompatDelegateImplV7.java:174)
                                                     at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:92)
                                                     at android.support.v7.app.AppCompatDelegateImplV7.onPostResume(AppCompatDelegateImplV7.java:229)
                                                     at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:139)
                                                     at android.app.Activity.performResume(Activity.java:6119)
                                                     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2965)
                                                     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3007)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2373)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:149)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5292)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
fara12 (200 포인트) 님이 2017년 5월 31일 질문

2개의 답변

0 추천
package com.example.com.pro;


import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;

import org.json.JSONObject;

public class Login extends AppCompatActivity {


    CheckBox autoLogin;
    //Boolean loginChecked;
    SharedPreferences pref;
    SharedPreferences.Editor editor;
    String id;
    String password;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final EditText idInput = (EditText) findViewById(R.id.emailInput);
        final EditText passwordInput = (EditText) findViewById(R.id.passwordInput);
        autoLogin = (CheckBox) findViewById(R.id.checkbox);
        final Button LoginButton = (Button) findViewById(R.id.loginButton);
        final Button registerButton = (Button) findViewById(R.id.signupButton);

        pref = getSharedPreferences("login", 0);
        editor = pref.edit();


        LoginButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                final String UserID = idInput.getText().toString();
                final String UserPassword = passwordInput.getText().toString();

                Response.Listener<String> responseListener = new Response.Listener<String>() {

                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");
                            if (success) {
                                String UserID = jsonResponse.getString("UserID");
                                String UserPassword = jsonResponse.getString("UserPassword");
                                AlertDialog.Builder builder = new AlertDialog.Builder(Login.this);
                                builder.setMessage("로그인에 성공하였습니다.").setPositiveButton("확인", null).create().show();
                                Intent intent = new Intent(Login.this, MapsActivity.class);
                                Login.this.startActivity(intent);
                            } else {
                                AlertDialog.Builder builder = new AlertDialog.Builder(Login.this);
                                builder.setMessage("로그인에 실패하였습니다").setNegativeButton("다시 시도",null).create().show();
                            }

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                };
                LoginRequest loginRequest = new LoginRequest(UserID, UserPassword, responseListener);
                RequestQueue queue = Volley.newRequestQueue(Login.this);
                queue.add(loginRequest);
            }
        });
        registerButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent i = new Intent(Login.this, Signup.class);
                startActivity(i);
            }
        });


        // if autoLogin checked, get input
        if (pref.getBoolean("autoLogin", false)) {
            idInput.setText(pref.getString("UserID", ""));
            passwordInput.setText(pref.getString("UserPassword", ""));
            autoLogin.setChecked(true);
            // goto mainActivity
        }
        // set checkBoxListener
        autoLogin.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked) {
                    id = idInput.getText().toString();
                    password = passwordInput.getText().toString();
                    editor.putString("UserID", id);
                    editor.putString("UserPassword", password);
                    editor.putBoolean("autoLogin", true);
                    editor.commit();
                }
                else
                {
                    // if unChecked, removeAll
                    editor.remove("id");
                    editor.remove("pw");
                    editor.remove("autoLogin");
                    editor.clear();
                    editor.commit();
                }
            }
        });
    }
소스코드입니다...
fara12 (200 포인트) 님이 2017년 5월 31일 답변
0 추천
널포인트 난다고 에러에 나와있네요.
개발자초심 (21,220 포인트) 님이 2017년 6월 1일 답변
어떤걸 수행할때 오류가 발생되는지도 명시되어있지 않고..
소스를 다 봐달라는 것 밖에 안보이는데요.
처음올려봐서 잘 몰랐네요 죄송합니다
...