FragmentActivityがActivityの代わりにMapActivityを拡張するサポートライブラリのこの修正版を使用することが1つの解決策になると思います。
https://github.com/petedoyle/android-support-v4-googlemaps
次のように、Activity クラス内に MapView オブジェクトを作成し、それをフラグメントに渡す必要があることに注意してください。
public class MyMapActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Exchanger.sMapView = new MapView(this, "your_api_key");
}
public static class Exchanger {
public static MapView sMapView;
}
}
そしてフラグメントは
public class MapFragment extends Fragment {
@Override
public void onCreate(Bundle args) {
super.onCreate(args);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup vg, Bundle data) {
final ViewGroup parent = (ViewGroup) MyMapActivity.Exchanger.sMapView.getParent();
if (parent != null)
parent.removeView(MyMapActivity.Exchanger.sMapView);
return MyMapActivity.Exchanger.mMapView;
}
}
MyMapActivity
TabsFragmentActivity
リンクしたチュートリアルのです。サポート ライブラリの変更されたバージョンを使用することを忘れないでください (ダウンロード リンク)
上記の方法は廃止されました。
MapFragment を使用できるようになりました:
http://developer.android.com/google/play-services/maps.html