私は自分の誕生日、メールアドレスなどのGoogleユーザーの詳細を取得しようとしていますアドレス、ニックネームなどが含まれます。デベロッパーコンソールでGoogle+ APIを有効にしました。私はこれを行うコードを実行すると、このエラーでクラッシュ:私は次のフラグメントをロードしようとすると、ヌルオブジェクトリファレンスでインタフェースメソッド 'boolean com.google.android.gms.plus.model.people.Person.hasNickname()'を呼び出そうとしています
が@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SIGN_IN_REQUEST) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount account = result.getSignInAccount(); //Information of account is loaded here
account.getId();
final Person[] googlePerson = new Person[1];
Plus.PeopleApi.load(googleApiClient, account.getId()).setResultCallback(new ResultCallback<People.LoadPeopleResult>() {
@Override
public void onResult(@NonNull People.LoadPeopleResult loadPeopleResult) {
googlePerson[0] = loadPeopleResult.getPersonBuffer().get(0);
}
});
DataContainer.getDataContainerInstance().setGoogleSignInAccount(account);
DataContainer.getDataContainerInstance().setGooglePerson(googlePerson[0]);
if (account != null) {
FragmentManager mgr = getFragmentManager();
FragmentTransaction transaction = mgr.beginTransaction();
transaction.replace(R.id.LoginActivityContentArea, new GoogleSignUpFragment(), "GoogleSignUpFragment");
transaction.addToBackStack("GoogleSignUpFragment");
transaction.commit();
}
}
}
クラッシュが起こる:ここ
Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'boolean com.google.android.gms.plus.model.people.Person.hasNickname()' on a null object reference
at Fragments.GoogleSignUpFragment.setupPage(GoogleSignUpFragment.java:93)
at Fragments.GoogleSignUpFragment.onCreateView(GoogleSignUpFragment.java:56)
は、Google +のAPIに接続するコードです。ユーザーはテキストビューに詳細を入力します。
private void setupPage()
{
GoogleSignInAccount account = DataContainer.getDataContainerInstance().getGoogleSignInAccount();
Person googlePerson = DataContainer.getDataContainerInstance().getGooglePerson();
if (googlePerson.hasNickname()) {
username.setText(googlePerson.getNickname());
}
dob.setText(googlePerson.getBirthday());
gender.setText(googlePerson.getGender());
location.setText(googlePerson.getCurrentLocation());
name.setText(account.getDisplayName());
email.setText(account.getEmail());
}
メールアカウントにGoogle+プロフィールがない場合、Googleユーザーの生年月日を取得する別の方法はありますか?このメールアカウントにはGoogle+プロフィールがないため、このエラーが発生している可能性があります。
私はこれがGoogle APIの問題ではないと思います。 'DataContainer.getDataContainerInstance().getGooglePerson();'は単にnullを返しました。 –