У меня есть фрагмент, в который я хочу загрузить карту Google. Я добавил FragmentMap
, и это прекрасно загружается. Проблема, с которой я столкнулся, заключается в том, что всякий раз, когда я пытаюсь сослаться на карту, она появляется как ошибка указателя NULL.
Мой макет XML:
<fragment
android:id="@+id/map2"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView2"
app:layout_constraintVertical_bias="1.0"
/>
И код, который я использовал в моемФрагмент:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
SupportMapFragment mapFragment = (SupportMapFragment)getFragmentManager().findFragmentById(R.id.map2);
mapFragment.getMapAsync(this);
}
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
LatLng pp = new LatLng(52.81,1.05);
MarkerOptions option = new MarkerOptions();
option.position(pp).title("Home");
map.addMarker(option);
map.moveCamera(CameraUpdateFactory.newLatLng(pp));
}
}
Сгенерированная ошибка: mapFragment.getMapAsync(this);
java.lang.NullPointerException: Попытка вызвать виртуальный метод void com.google.android.gms. maps.SupportMapFragment.getMapAsync (com.google.android.gms.maps.OnMapReadyCallback) 'для пустой ссылки на объект.
Мой вопрос, я подозреваю, что, возможно, ссылаюсь на карту в неправильном месте. Должен ли мой код находиться в родительском действии (например, ActivityMain) или во фрагменте, который содержит карту?