Я получаю исключение java.lang.NullPointerException: - PullRequest
0 голосов
/ 26 октября 2019

Я работаю над проектом викторины. Прямо сейчас я работаю над разделом входа и нахожу эту ошибку. Можете ли вы дать мне совет и решить мою проблему?

E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.testonlinegmf, PID: 12664 java.lang.NullPointerException: Попытка вызвать виртуальный метод'com.example.testonlinegmf.model.User com.example.testonlinegmf.model.LoginResponse.getUser ()' для нулевой ссылки на объект в com.example.testonlinegmf.LoginActivity $ 1.onResponse (LoginActivity.java:111) в retrofit2. DefaultCallAdapterFactory $ ExecutorCallbackCall $ 1 $ 1.run (DefaultCallAdapterFactory.java:83) в android.os.Handler.handleCallback (Handler.java:790) в android.os.Handler.dispatchMessage (Handler.java:99) в android.os. .loop (Looper.java:164) в android.app.ActivityThread.main (ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

это модель

public class LoginResponse {

    @SerializedName("error")
    private Boolean error;

    @SerializedName("message")
    private String message;

    @SerializedName("user")
    private User user;

    public void setError(boolean error){
        this.error = error;
    }

    public boolean getError(){
        return error;
    }

    public void setMessage(String message){
        this.message = message;
    }

    public String getMessage(){
        return message;
    }

    public void setUser(User user){
        this.user = user;
    }

    public User getUser(){
        return user;
    }


    public LoginResponse(Boolean error, String message, User user){
        this.error = error;
        this.message = message;
        this.user = user;
    }

}

Тхиs это метод входа в систему

private void userLogin(){
        String idNumber = editNip.getText().toString().trim();
        String password = edit_password.getText().toString().trim();

        if (idNumber.isEmpty()){
            editNip.setError("Enter a valid NIP");
            editNip.requestFocus();
            return;
        }

        if (password.isEmpty()){
            edit_password.setError("Password required");
            edit_password.requestFocus();
            return;
        }

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ApiUtil.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        ApiService service = retrofit.create(ApiService.class);


        Call<LoginResponse> call = service.userLogin(idNumber,password);

        call.enqueue(new Callback<LoginResponse>() {

            @Override
            public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {

                if (!response.isSuccessful()) {

                        finish();
                        SharedPrefManager.getInstance(getApplicationContext())
                                .userLogin(response.body().getUser());
                        Intent intent = new Intent(getApplicationContext(), MainMenuActivity.class);
                        startActivity(intent);
                    } else {
                        Toast.makeText(getApplicationContext(), "Wrong ID or Password", Toast.LENGTH_LONG).show();
                    }

            }


            @Override
            public void onFailure(Call<LoginResponse> call, Throwable t) {

            }
        });
    }
...