Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 从BaseGameActity调用活动_Java_Android_Andengine - Fatal编程技术网

Java 从BaseGameActity调用活动

Java 从BaseGameActity调用活动,java,android,andengine,Java,Android,Andengine,我正在使用andengine开发一个游戏,所以我将我的主要活动从BaseGameActivity扩展。我还实现了SceneManager。现在,在scenemanager中,我想调用一个扩展“Activity”而不是BaseGameActivity的类 我使用以下代码从我的场景管理器调用该类 class MainActivity extends BaseGameActivity { // code // implemented SceneManager } class SceneManag

我正在使用andengine开发一个游戏,所以我将我的主要活动从BaseGameActivity扩展。我还实现了SceneManager。现在,在scenemanager中,我想调用一个扩展“Activity”而不是BaseGameActivity的类 我使用以下代码从我的场景管理器调用该类

class MainActivity extends BaseGameActivity
{
 // code
 // implemented SceneManager
}

class SceneManager
{
  BaseGameActivity activity;

  public void showFbActivity()
  {
    activity.startActivity(new Intent(activity, FbConnect.class)); // Error line
  }
}

class MainMenuScene
{
    public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem,
        float pMenuItemLocalX, float pMenuItemLocalY) {
    // TODO Auto-generated method stub
//      return false;
      switch(pMenuItem.getID())
      {
      case MENU_PLAY:
        SceneManager.getInstance().loadGameScene(engine);
        return true;
      case MENU_OPTIONS:
        SceneManager.getInstance().showFbActivity();
        return true;
      default:
        return false;
      }
  }
}

class FbConnect extends Activity
{
    protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
现在我的问题是,我在上面提到的行中得到了一个nullpointerexception,请参见注释代码

下面是我的logcat输出 上面代码中的注释行是SceneManager中的第118行

09-14 22:52:32.035: E/AndroidRuntime(22385): FATAL EXCEPTION: UpdateThread
09-14 22:52:32.035: E/AndroidRuntime(22385): java.lang.NullPointerException
09-14 22:52:32.035: E/AndroidRuntime(22385):    at android.content.ComponentName.<init>(ComponentName.java:75)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at android.content.Intent.<init>(Intent.java:2857)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at com.sohi.tech.rollball.SceneManager.showFbActivity(SceneManager.java:118)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at com.sohi.tech.rollball.MainMenuScene.onMenuItemClicked(MainMenuScene.java:93)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.menu.MenuScene.onAreaTouched(MenuScene.java:139)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.Scene.onAreaTouchEvent(Scene.java:413)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.Scene.onSceneTouchEvent(Scene.java:357)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.CameraScene.onSceneTouchEvent(CameraScene.java:64)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.Scene.onChildSceneTouchEvent(Scene.java:420)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.entity.scene.Scene.onSceneTouchEvent(Scene.java:338)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.Engine.onTouchScene(Engine.java:452)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.Engine.onTouchEvent(Engine.java:438)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.input.touch.controller.BaseTouchController$TouchEventRunnablePoolItem.run(BaseTouchController.java:102)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.util.adt.pool.RunnablePoolUpdateHandler.onHandlePoolItem(RunnablePoolUpdateHandler.java:54)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.util.adt.pool.RunnablePoolUpdateHandler.onHandlePoolItem(RunnablePoolUpdateHandler.java:1)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.util.adt.pool.PoolUpdateHandler.onUpdate(PoolUpdateHandler.java:88)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.input.touch.controller.BaseTouchController.onUpdate(BaseTouchController.java:62)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.Engine.onUpdate(Engine.java:584)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.LimitedFPSEngine.onUpdate(LimitedFPSEngine.java:56)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.Engine.onTickUpdate(Engine.java:548)
09-14 22:52:32.035: E/AndroidRuntime(22385):    at org.andengine.engine.Engine$UpdateThread.run(Engine.java:820)
换行

activity.startActivity(new Intent(BaseGameActivity.this, FbConnect.class));

我的SceneManager类并没有从任何东西扩展,所以BaseGameActivity在它里面是不可识别的。将代码更改为建议的代码会显示一个错误,scopeFixed中无法访问BaseGameActivity类型的封闭实例。我从MainMenuScene调用了FBconnect.class,而不是通过scenemanager调用它。
Intent it = new Intent(BaseGameActivity.this, FbConnect.class);
activity.startActivity(it);