我是新的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>
答案 0 :(得分:0)
活动由Android操作系统管理。这意味着您不应该为活动编写自己的构造函数,也不应该直接实例化它们。 您必须遵守Activity lifecyle。
==&GT;删除构造函数并将所有初始化移动到onCreate
方法中。