Я работаю над проектом викторины. Прямо сейчас я работаю над разделом входа и нахожу эту ошибку. Можете ли вы дать мне совет и решить мою проблему?
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) {
}
});
}