嘿,我想在我的游戏中实现一个托管在新的 google play 开发者控制台中的排行榜。在本教程中,您必须使用BaseGameActivity
. extends BaseGameActivity
因为您不能扩展 2 个不同的类,所以我认为在找到其位置的地方创建另一个类是有意义的,这样我就可以在BaseGameActivity
每次需要时从 MainActivity 调用它们(它扩展了 Activity,例如用于 UI 元素)。
我在 MainActivity 中调用登录函数:
public void onClick(View v) {
if (v.getId() == R.id.sign_in_button) {
new Submit().signin();
}
Submit是继承BaseGameActivity的类,方法signin()
如下:
public void signin()
{ beginUserInitiatedSignIn();}
如果我这样做,单击谷歌的登录按钮,我会收到以下错误(应用程序强制关闭):
07-02 02:34:35.491: E/AndroidRuntime(21287): java.lang.NullPointerException
07-02 02:34:35.491: E/AndroidRuntime(21287): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:131)
07-02 02:48:51.178: E/AndroidRuntime(21431): FATAL EXCEPTION: main
07-02 02:48:51.178: E/AndroidRuntime(21431): java.lang.NullPointerException
07-02 02:48:51.178: E/AndroidRuntime(21431): at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:116)
07-02 02:48:51.178: E/AndroidRuntime(21431): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
07-02 02:48:51.178: E/AndroidRuntime(21431): at com.google.example.games.basegameutils.GameHelper.beginUserInitiatedSignIn(GameHelper.java:445)
07-02 02:48:51.178: E/AndroidRuntime(21431): at com.google.example.games.basegameutils.BaseGameActivity.beginUserInitiatedSignIn(BaseGameActivity.java:132)
07-02 02:48:51.178: E/AndroidRuntime(21431): at PACKAGENAME.Submit.signin(Submit.java:25)
07-02 02:48:51.178: E/AndroidRuntime(21431): at PACKAGENAME.APPNAME.MainActivity.onClick(MainActivity.java:181)
当我试图弄乱获取上下文或类似的东西时,会出现非常相似的错误。
我在另一个类中管理谷歌方法的想法是错误的,还是像那样无法撤消?如果没有,当我不扩展 Activity 因为我想扩展时,我应该如何管理 UI 元素BaseGameActivity
?
对不起,如果我的文字看起来很乱,但我现在已经坐在这个问题上 6 个小时了,我的眼睛现在正在流血..
谢谢您的回答