无法使用继承类实例化活动

时间:2014-03-30 17:42:03

标签: java android android-activity

我是新的Android开发人员,我正在Android智能手机上使用GoogleMap API v2开发游戏。

当我想在训练模式下开始游戏时,我有这个编译错误:

  

java.lang.RuntimeException:无法实例化活动   ComponentInfo {} com.epig_lab.game/com.epig_lab.game.GameModeTraining:   显示java.lang.NullPointerException

这是我的代码:

Intent inent = new Intent(getApplicationContext(), GameModeTraining.class);

课程:

public abstract class AGameMode extends Activity // implements View.OnClickListener, OnMapClickListener
{
    JSONArray j_city;
    String capital_city = "..."
    String[] city_already_choosen = new String[capital_city.length() + 1];
    Geocoder geoCoder = new Geocoder(this);

    AGameMode()
    {

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_time_attack);

        GoogleMap map = ((MapFragment) getFragmentManager()
                .findFragmentById(R.id.map)).getMap();

        map.moveCamera(CameraUpdateFactory.newLatLngZoom(
                new LatLng(-18.142, 178.431), 2));

        // Other supported types include: MAP_TYPE_NORMAL,
        // MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID and MAP_TYPE_NONE
        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        //map.setOnMapClickListener(this);

        try {
            j_city = new JSONArray(capital_city);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

一个子类:

public class GameModeTraining extends AGameMode {

    GameModeTraining()
    {
        super();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        }

}

这在我的Android.Manifest中:

    <activity
        android:name="com.epig_lab.game.GameModeTraining"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.GAMEMODETRAINING" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
      </activity>

1 个答案:

答案 0 :(得分:0)

活动由Android操作系统管理。这意味着您不应该为活动编写自己的构造函数,也不应该直接实例化它们。 您必须遵守Activity lifecyle

==&GT;删除构造函数并将所有初始化移动到onCreate方法中。