J'ai créé une application qui aide les utilisateurs à se connecter à un serveur en ligne à l'aide d'API. J'utilise retrofit pour m'aider à faire des appels réseau au serveur. Bizarrement, certains appareils comme les tablettes et les applications comme les piles bleues obtiennent une exception de pointeur nul lorsque la réponse du serveur est nulle. Veuillez m'aider à corriger l'exception du pointeur nul. NB: Il y a tellement de questions sur l'exception Pointeur nul, mais aucune n'est adaptée à ma question.Exception Nullpointer sur la réponse du serveur
Ceci est mon code ci-dessous
public void loginUser(String userName, String userPassword, Boolean userRememberMe) {
Retrofit retrofit = RetrofitClient.getClient(authUser.getToken());
APIService mAPIService = retrofit.create(APIService.class);
final ProgressDialog loading = ProgressDialog.show(this, "Please Wait", "...", false, false);
loading.show();
mAPIService.loginUser(userName, userPassword, userRememberMe).enqueue(new Callback<LendingResponse>() {
@Override
public void onResponse(Response<LendingResponse> response, Retrofit retrofit) {
if(response.isSuccess()) {
String userId = response.body().getData().getId();
String userName = response.body().getData().getUsername();
String name = response.body().getData().getName();
String phoneNumber = response.body().getData().getPhoneNumber();
String email = response.body().getData().getEmail();
String token =response.body().getData().getToken();
String gender = response.body().getData().getGender();
loading.dismiss();
}
}
@Override
public void onFailure(Throwable throwable) {
Log.e(TAG, throwable.getMessage());
Toast.makeText(LoginActivity.this, "Unable to Login", Toast.LENGTH_SHORT).show();
loading.dismiss();
}
});
}
Ceci est mes journaux d'erreur du magasin de jeu ci-dessous:
java.lang.NullPointerException:
at com.jonathan.lendingsquare.auth.LoginActivity$3.onResponse (Unknown Source)
at retrofit.ExecutorCallAdapterFactory$ExecutorCallback$1.run (Unknown Source)
at android.os.Handler.handleCallback (Handler.java:733)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:136)
at android.app.ActivityThread.main (ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative (Native Method)
at java.lang.reflect.Method.invoke (Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:609)
at dalvik.system.NativeStart.main (Native Method)
Vérifiez votre réponse API avec la même demande sur le client de repos Web comme Postman. Gérez l'exception avec try-catch sur la réponse en tant que bloc de code toujours sujet aux exceptions. – ADM
@AMD cela fonctionne avec le corps du message de facteur n'est jamais null..il est juste étrange que j'obtiens des messages nuls lorsque vous utilisez des piles bleues ... entourer ce bloc de code avec try catch –
Vérifiez la classe de modèle que vous affectez à la modification. Il doit y avoir un problème d'analyse. – ADM