Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';不要在Android中启动新活动_Java_Android - Fatal编程技术网

Java Can';不要在Android中启动新活动

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)){

我正在写一个游戏,游戏结束后我需要切换活动。我的问题是我有一个扩展到Activity的gameLogic Java类,它不是一个主Activity类

所以我在GameLogic类中有一个gameover方法,它返回布尔值。如果返回false,则必须切换到第二个活动,但实际情况并非如此。它返回
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:29830
java.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);