2017-02-09 46 views
1

當我嘗試從GoogleApiClient登出我得到了以下錯誤消息當我嘗試從GoogleApiClient到signout我在一個空對象引用

GoogleApiClient.isConnected() on a null object reference 

這裏得到錯誤信息GoogleApiClient.isConnected()是我的代碼:

public static GoogleSignInOptions gso; 
public static GoogleApiClient mGoogleApiClient; 

//......... 

google.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build(); 
      mGoogleApiClient = new GoogleApiClient.Builder(getContext()).enableAutoManage(getActivity(), new GoogleApiClient.OnConnectionFailedListener() { 
       @Override 
       public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
        Toast.makeText(getContext(), "Login failed", Toast.LENGTH_LONG).show(); 
       } 
      }).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build(); 
      Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
      startActivityForResult(intent, requestCode); 
      mGoogleApiClient.connect(); 


      Toast.makeText(getContext(),"User Name "+ acc.getDisplayName()+ "Mail "+acc.getEmail(), Toast.LENGTH_LONG).show(); 
     } 
    }); 

和我簽了代碼

public void signout(){ 
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(@NonNull Status status) { 
      Intent intent1 = new Intent(getContext(),LoginActivity.class); 
      startActivity(intent1); 
      getActivity().finish(); 
     } 
    }); 

而且我也試過:

if (UserLogin.mGoogleApiClient.isConnected()) { 
    UserLogin.mGoogleApiClient.disconnect(); 
} 
+0

發佈您的代碼mGoogleApiClient定義並初始化 –

回答

0

嘗試......

定義:

public GoogleSignInOptions gso; 
public GoogleApiClient mGoogleApiClient; 

初始化onCreate方法:

gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
    .requestEmail() 
    .build(); 

mGoogleApiClient = new GoogleApiClient.Builder(this) 
    .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
    .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
    .build(); 
    mGoogleApiClient.connect(); 

現在設置點擊監聽器簽到按鈕

google.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     startActivityForResult(intent, requestCode); 

     Toast.makeText(getContext(),"User Name "+ acc.getDisplayName()+ "Mail "+acc.getEmail(), Toast.LENGTH_LONG).show(); 
    } 
}); 

/////

@Override 
public void onConnectionFailed(ConnectionResult connectionResult) { 
Toast.makeText(getContext(), "Login failed", Toast.LENGTH_LONG).show(); 
} 

//登出

private void signOut() { 
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
     new ResultCallback<Status>() { 
      @Override 
      public void onResult(Status status) { 
      Intent intent1 = new Intent(getContext(),LoginActivity.class); 
      startActivity(intent1); 
      getActivity().finish(); 
      } 
     }); 
} 

希望這會幫助你。

+0

嘗試但我得到了相同的錯誤消息 – Manojkumar

+0

我需要退出方法sigin工作正常 – Manojkumar

相關問題