AndroidManifestにアクティビティを追加すると、具体的なクラスがないというエラーが発生します。アクティビティの抽象クラスを削除して問題を理解するのを手伝ってください。しかし、それは解決しません。
public abstract class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_fragment);
setUpMap();
}
@Override
protected void onResume() {
super.onResume();
setUpMap();
}
@Override
public void onMapReady(GoogleMap map) {
if (mMap != null) {
return;
}
mMap = map;
startDemo();
}
private void setUpMap() {
((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(this);
}
/**
* Run the demo-specific code.
*/
protected abstract void startDemo();
protected GoogleMap getMap() {
return mMap;
}
}
マニフェストでabstract
スーパークラスを宣言する必要はありません
マニフェストには、たとえばインテントを使用してインスタンス化するアクティビティクラスのみを含める必要があります。
抽象クラスが他のアクティビティ(サブクラス)をサブクラス化するためだけに存在する場合は、それらのアクティビティをマニフェストに追加する必要があります。
クラスにサブクラスがない場合は、クラス宣言からabstract
を削除します。
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
また、抽象メソッドも削除します。
protected abstract void startDemo();