我的主要活动扩展了BaseGameActivity,我试图获取排行榜中显示的用户名。我尝试使用:
Plus.AccountApi.getAccountName(getApiClient());
但它没有用,我得到了:
07-26 15:03:44.624: E/AndroidRuntime(28361): FATAL EXCEPTION: main
07-26 15:03:44.624: E/AndroidRuntime(28361): java.lang.NullPointerException: Appropriate Api was not requested.
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.google.android.gms.internal.hn.b(Unknown Source)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.google.android.gms.common.api.c.a(Unknown Source)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.google.android.gms.internal.kj.a(Unknown Source)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.google.android.gms.internal.kj.getAccountName(Unknown Source)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.gfel.maze.StartPage$4.onClick(StartPage.java:158)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.view.View.performClick(View.java:4147)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.view.View$PerformClick.run(View.java:17161)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.os.Handler.handleCallback(Handler.java:615)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.os.Handler.dispatchMessage(Handler.java:92)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.os.Looper.loop(Looper.java:213)
07-26 15:03:44.624: E/AndroidRuntime(28361): at android.app.ActivityThread.main(ActivityThread.java:4787)
07-26 15:03:44.624: E/AndroidRuntime(28361): at java.lang.reflect.Method.invokeNative(Native Method)
07-26 15:03:44.624: E/AndroidRuntime(28361): at java.lang.reflect.Method.invoke(Method.java:511)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
07-26 15:03:44.624: E/AndroidRuntime(28361): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
07-26 15:03:44.624: E/AndroidRuntime(28361): at dalvik.system.NativeStart.main(Native Method)
我知道有一种方法可以使用GoogleApiClient.Builder,但我正在寻找另一种方式 我使用BaseGameActivity。
答案 0 :(得分:0)
在onCreate方法中添加 setRequestedClients(BaseGameActivity.CLIENT_GAMES | BaseGameActivity.CLIENT_PLUS);
在super.conCreate(savedInstanceState)之前
@Override
public void onCreate(Bundle savedInstanceState) {
// set requested clients (games and cloud save)
setRequestedClients(BaseGameActivity.CLIENT_GAMES |
BaseGameActivity.CLIENT_PLUS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_leaderboard);
}
可以在https://developers.google.com/games/services/android/init
阅读更多信息