我有一個FragmentActivity,我試圖加載谷歌地圖。它實現了OnMapReadyCallBack,當我嘗試膨脹地圖時,我得到了mapFragment對象,但調用getMapAsync後應用程序崩潰。下面是我的代碼:onMapReady未被調用:Google地圖在FrgmentActivity中:Android Studio
public class MapActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
initializeMap();
}
private void initializeMap() {
if (googleMap == null) {
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
if(mapFragment!=null){
mapFragment.getMapAsync(MapActivity.this);
}
// check if map is created successfully or not
if (null== googleMap) {
Toast.makeText(getApplicationContext(), "Sorry! unable to create maps", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
googleMap.setMyLocationEnabled(true);
}
}
我試圖degug和我注意到,我收到mapFragment對象,但它從來沒有達到onMapReady方法,這使得我的GoogleMap對象爲空和應用程序崩潰時的任何方法有關googleMap(例如setOnCameraChangeListener)正在被調用。我已經通過了documentation page,但它似乎不適用於我的項目。
有沒有什麼我可能會在我的項目中失蹤?我應該如何克服這個錯誤,並停止應用程序崩潰。
TIA
編輯1:
下面是我在XML文件中的地圖片段
<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment"/>
您能否顯示您的R.layout.activity_map? – AlexTa
檢查我在問題中的編輯。 –