2017-11-01 2 views
-1

내가 등록 과정에서 서버 응답을 싶어 전화를하지만, 불행히도 내 응용 프로그램은 여기응용 프로그램의 충돌()

response.enqueue(new Callback<ServerResponse>() { 
     @Override 
     public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) { 

      ServerResponse resp = response.body(); 
//crash occurs here 
      Toast.makeText(getApplicationContext(), resp.getMessage(), Toast.LENGTH_LONG).show(); 

충돌 계속이 아래

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.chat.ServerResponse.getMessage()' on a null object reference 
                   at com.chat.RegisterActivity$3.onResponse(RegisterActivity.java:130) 
                   at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 
                   at android.os.Handler.handleCallback(Handler.java:739) 
                   at android.os.Handler.dispatchMessage(Handler.java:95) 
                   at android.os.Looper.loop(Looper.java:158) 

말한다 로그 캣 것입니다 내 serverResponse 클래스입니다

public class ServerResponse { 

private String result; 
private String message; 
private User user; 

public String getResult() { 
    return result; 
} 

public String getMessage() { 
    return message; 
} 

public User getUser() { 
    return user; 
} 
} 
+2

[I 고칠 어떻게 NullPointerException이, 그리고 무엇?] (의 가능한 중복 https://stackoverflow.com/ 질문/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –

+0

'rep.getMessage()'가'null'이므로 앱이 충돌합니다. – HassanUsman

+0

ServerResponse Pojo 클래스를 게시하십시오. – gStephin

답변

0

크래시가 토스트 구현으로 인한 것일 수 있습니다. 별도의 f 토스트에 대한 언쟁을 한 다음 그것을 선언하면 토스트가 반복되는 것처럼 보입니다. 그것은 응용 프로그램의 충돌이 발생합니다.

+0

어떻게 할 수 있습니까? – Mani

1

업데이트 당신의 방법이 같은는 :

response.enqueue(new Callback<ServerResponse>() { 
     @Override 
     public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) { 

      ServerResponse resp = response.body(); 

      //check your resp is null or resp.getMessage() is nul here 
      if(resp!=null && resp.getMessage() != null) 
       Toast.makeText(getApplicationContext(), resp.getMessage(), Toast.LENGTH_LONG).show(); 

이 문제를 해결할 수 있습니다.

+0

만약 내가 그렇게하면 응답이 전혀 없어 아무 반응이 없으므로 – Mani

+0

당신의 응답이'null'이므로 응답을 확인하거나 여기에서 응답을 공유하십시오. – HassanUsman

+0

방금 ​​내 'serverResponse.class'를 추가했습니다. – Mani

0

이 형식 같은 POJO 클래스를 작성했는지 확인하십시오 ..

public class ServerResponse { 

@SerializedName("MESSAGE") 
private String MESSAGE; 

@SerializedName("MESSAGE") 
public void setMESSAGE(String MESSAGE) { 
    this.MESSAGE= MESSAGE; 
} 
@SerializedName("MESSAGE") 
public String getMessage() { 
    return MESSAGE; 
} 
} 
+0

이 클래스는 필요 없다. – HassanUsman

+0

코드를 시도했지만 여전히 동일합니다 – Mani

+0

응답을이 형식으로 인쇄하십시오. Log.w ("reseP", 새 Gson(). toJson (응답)); – gStephin

관련 문제