Java Can';不要在Android中启动新活动
我正在写一个游戏,游戏结束后我需要切换活动。我的问题是我有一个扩展到Activity的gameLogic Java类,它不是一个主Activity类 所以我在GameLogic类中有一个gameover方法,它返回布尔值。如果返回false,则必须切换到第二个活动,但实际情况并非如此。它返回Java Can';不要在Android中启动新活动,java,android,Java,Android,我正在写一个游戏,游戏结束后我需要切换活动。我的问题是我有一个扩展到Activity的gameLogic Java类,它不是一个主Activity类 所以我在GameLogic类中有一个gameover方法,它返回布尔值。如果返回false,则必须切换到第二个活动,但实际情况并非如此。它返回null.pointer.exception 代码如下: public void gameOver(GameData data){ if(!intersect(data)){
null.pointer.exception
代码如下:
public void gameOver(GameData data){
if(!intersect(data)){
Intent intent = new Intent(GameLogic.this , SecondActivity.class);
startActivity(intent);
}
}
我在OnDraw方法的GameData类中调用这个方法,因为OnDraw方法总是要控制它是否是gameover
protected void onDraw(Canvas canvas){
.........
....
......
.....
............
logic.gameOver(this);
}
错误:
08-20 14:13:58.293 29830-29830/com.example.msimsi.myapplication
E/AndroidRuntime:致命异常:主
进程:com.example.msi.myapplication,PID:29830java.lang.NullPointerException:尝试调用虚拟方法 空值上的“java.lang.String android.content.Context.getPackageName()” 对象引用 在 android.content.ContextWrapper.getPackageName(ContextWrapper.java:132) 位于android.content.ComponentName.(ComponentName.java:77) 位于android.content.Intent.(Intent.java:4160) 在 com.example.msimsi.myapplication.GameLogic.gameOver(GameLogic.java:230) 位于com.example.msimsi.myapplication.GameData.onDraw(GameData.java:86) 在android.view.view.draw(view.java:15231) 在android.view.view.updateDisplayListIfDirty(view.java:14167)上 位于android.view.view.getDisplayList(view.java:14189) 在 recreateChildDisplayList(ViewGroup.java:3389) 位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 在android.view.view.updateDisplayListIfDirty(view.java:14127)上 位于android.view.view.getDisplayList(view.java:14189) 在 recreateChildDisplayList(ViewGroup.java:3389) 位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 在android.view.view.updateDisplayListIfDirty(view.java:14127)上 位于android.view.view.getDisplayList(view.java:14189) 在 recreateChildDisplayList(ViewGroup.java:3389) 位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 在android.view.view.updateDisplayListIfDirty(view.java:14127)上 位于android.view.view.getDisplayList(view.java:14189) 在 recreateChildDisplayList(ViewGroup.java:3389) 位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 在android.view.view.updateDisplayListIfDirty(view.java:14127)上 位于android.view.view.getDisplayList(view.java:14189) 在 recreateChildDisplayList(ViewGroup.java:3389) 位于android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3368) 在android.view.view.updateDisplayListIfDirty(view.java:14127)上 位于android.view.view.getDisplayList(view.java:14189) 在 updateViewTreeDisplayList(ThreadedRenderer.java:273) 在 updateRootDisplayList(ThreadedRenderer.java:279) 在android.view.ThreadedRenderer.draw(ThreadedRenderer.java:318) 在android.view.ViewRootImpl.draw(ViewRootImpl.java:2530)
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(intent);