2012-08-22 68 views
0

我读了this教程,并使用它的代码在我的游戏中实现ScoreLoop服务。并提交分数工作正常,但显示其他Android活动或简单的Toast消息与NullPointer错误崩溃。如何在libGDX中显示Android Toast消息(运行其他Activity)?

坠毁行:

Intent intent = new Intent(mContext, EntryScreenActivity.class); 

和:

Toast.makeText(mContext, "Refreshing scores", Toast.LENGTH_SHORT).show(); 

在调试模式下我看到mContext不为空

哪里是错误,应该如何解决?

的logcat:

08-22 17:54:27.329: E/AndroidRuntime(15468): java.lang.NullPointerException 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.content.ContextWrapper.getResources(ContextWrapper.java:81) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.widget.Toast.<init>(Toast.java:92) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.widget.Toast.makeText(Toast.java:233) 08-22 17:54:27.329: E/AndroidRuntime(15468): at com.masterofcode.android.slingshot.ActionResolverAndroid$3.run(ActionResolverAndroid.java:46) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.os.Handler.handleCallback(Handler.java:605) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.os.Handler.dispatchMessage(Handler.java:92) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.os.Looper.loop(Looper.java:137) 08-22 17:54:27.329: E/AndroidRuntime(15468): at android.app.ActivityThread.main(ActivityThread.java:4424) 08-22 17:54:27.329: E/AndroidRuntime(15468): at java.lang.reflect.Method.invokeNative(Native Method) 08-22 17:54:27.329: E/AndroidRuntime(15468): at java.lang.reflect.Method.invoke(Method.java:511) 08-22 17:54:27.329: E/AndroidRuntime(15468): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 08-22 17:54:27.329: E/AndroidRuntime(15468): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 08-22 17:54:27.329: E/AndroidRuntime(15468): at dalvik.system.NativeStart.main(Native Method) 

======================================================================== 

public class ActionResolverAndroid implements ActionResolver { 
    Handler uiThread; 
    BumbleAndroid mContext; //Your class here which extends AndroidApplication 
    ScoreloopHandler handler; 

    public ActionResolverAndroid(BumbleAndroid mContext) { 
     uiThread = new Handler(); //This binds the handler to the "main" thread, see documentation of handler 
     this.mContext = mContext; 
     handler = new ScoreloopHandler(mContext); 
    } 
} 

这样,我越来越mContext

+1

貌似mContext为空。 – nullpotent

+0

但是mContext恰好不为空 –

+0

你可以显示你在哪里设置mContext,我怀疑iccthedral是正确的,它没有设置。你还有在清单中宣布你的活动是正确的吗? –

回答

0

的问题是错误的mContext。

正确的代码是:

public class MyGameAndroidActivity extends AndroidApplication implements 
     ActionResolver { 
public void showScoreloop() { 
     Intent intent = new Intent(this, EntryScreenActivity.class); 
     this.startActivity(intent); 
    } 
}