I save JWT tokens in SharedPrefManager as Header. And I want to retrieve the username data but on a null object reference. but why is SharedPrefManager.getSP_Token r (java.lang.String) 'on a null object reference. After that, I will take this member ID as another transaction
Error
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.application.example, PID: 24805
java.lang.NullPointerException: Attempt to invoke interface method 'retrofit2.Call com.application.Example.Api.api_v2.BaseApiService.getUsermember(java.lang.String)' on a null object reference
at com.application.Example.Akun.FragmentAkun.getUsername(FragmentAkun.java:301)
at com.application.Example.Akun.FragmentAkun.onCreateView(FragmentAkun.java:105)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7091)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
FeagmentAkun.java
private void getUsername(){
Call<ResultItem> getUser = mApiService.getUsermember(sharedPrefManager.getSPToken());
getUser.enqueue(new Callback<ResultItem>() {
@Override
public void onResponse(Call<ResultItem> call, Response<ResultItem> response) {
if (response.code() == 200) {
Toast.makeText(getActivity(), response.body().getEmail(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ResultItem> call, Throwable t) {
}
});
}
ApiServices.java
//getUserMember
@GET("system/users/{id}")
Call<ResultItem> getUsermember(@Header("Authorization") String result);
ResultItem.java
public class ResultItem{
@SerializedName("password")
private String password;
@SerializedName("pin")
private String pin;
@SerializedName("verifiedMember")
private Object verifiedMember;
@SerializedName("profile")
private Profile profile;
@SerializedName("id")
private String id;
@SerializedName("msisdn")
private String msisdn;
@SerializedName("email")
private String email;
@SerializedName("sso")
private String sso;
@SerializedName("username")
private String username;
@SerializedName("token")
private Object token;
public void setPassword(String password){
this.password = password;
}
public String getPassword(){
return password;
}
public void setPin(String pin){
this.pin = pin;
}
public String getPin(){
return pin;
}
public void setVerifiedMember(Object verifiedMember){
this.verifiedMember = verifiedMember;
}
public Object getVerifiedMember(){
return verifiedMember;
}
public void setProfile(Profile profile){
this.profile = profile;
}
public Profile getProfile(){
return profile;
}
public void setId(String id){
this.id = id;
}
public String getId(){
return id;
}
public void setMsisdn(String msisdn){
this.msisdn = msisdn;
}
public String getMsisdn(){
return msisdn;
}
public void setEmail(String email){
this.email = email;
}
public String getEmail(){
return email;
}
public void setSso(String sso){
this.sso = sso;
}
public String getSso(){
return sso;
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return username;
}
public void setToken(Object token){
this.token = token;
}
public Object getToken(){
return token;
}
}