问题
When I'm calling plusClient.getCurrentPerson()
I am getting NULL.
Method onConnected(Bundle...)
called after a successful login:
@Override
public void onConnected(Bundle bundle)
{
if (plusClient.getCurrentPerson() == null)
{
Log.e("DD", "Person is null !");
}
}
I have added SHA1 directly from eclipse (Window->Preferences->Android->Build). I don't know what I am doing wrong!
SHA1 fingerprint from Eclipse ADT

Client ID for installed applications

Simple API access

回答1:
In my case I forgot to enable permission for google-plus
Hope it works...Any doubt let me know
Check from scratch:
Sometime person info may be null
check : PERMISSIONS
Important things to do:
Enable Google plus API
Enable Google Maps Android API
If you test locally then add sha1 key in eclipse-->window-->preference option-->Android-->Build
OR
You can generate SHA1 key through command prompt
keytool -list -v -keystore "C:\Users\User.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
If you are publishing app in play-store then you need to change SHA1 key in google console
because in local SHA1 key is different . After doing signedApk SHA1 key is different
While generating signed apk -->in the last screen -->you can see SHA1 key
After adding in google console you will get API key
Add this key in Manifest file

回答2:
I just found out that you need to pass multiple scopes when you're building the PlusClient object:
PlusClient plusClient = new PlusClient.Builder(this, this, this).setScopes(Scopes.PLUS_LOGIN, Scopes.PLUS_PROFILE ,"https://www.googleapis.com/auth/userinfo.email").build();
回答3:
- I encountered this today. This is an old post but I think others should know how I fixed this in Android Studio and what was the source of the problem.
I spent the last 6 hours with this and the problem was that a week ago I changed the package name using Refactoring from Android Studio but something must have gotten wrong since would always return me null, even though I refactored the project back to it's original package.
I fixed this by creating a new project, without closing the original, but using the same package name and the same login code from the original project and to my surprise it worked. The name of the new project was different but I named the package the same as the old one and it only had a button and code to manage the connection and nothing else.
The new project would read the data as it should and now the old project somehow got back on his feet and started reading the current user.
I closed the project with Close Project option from the File menu.
Best regards !
回答4:
Please check your phone network. you can use those codes below to check:
Plus.PeopleApi.loadVisible(mGoogleApiClient, null).setResultCallback(this);
@Override
public void onResult(LoadPeopleResult result) {
Log.d(TAG, "result.getStatus():" + result.getStatus());
}
if the result status is network error. the current person will be null.
I'm in China, so as you know if we want to connect the google service , sometimes we need a good agent 。
回答5:
This looks like a permissions issue. I added payment details in the Google API Console and it magically started working.
来源:https://stackoverflow.com/questions/20554310/android-google-plus-getcurrentperson-returns-null