2015-03-19 3 views
2

В настоящее время я пытаюсь разработать приложение для Android с интеграцией Google Maps. На данный момент у меня возникают трудности с поиском ошибки, потому что код выполняется с самого сайта google, за исключением того, что это SupportMapFragment. Если вы знаете, что настоящий учебник с поддержкой SupportMapFragment также будет отличным. Фактически, потому что я думаю, что .getMap() обесценивается. Если я должен опубликовать весь код, дайте мне знать (я новичок в StackOverflow)Google Maps - Android App не загружается - ссылка на нулевой объект

Если попытаться использовать этот код:

import android.content.Context; 
import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.support.v4.app.FragmentManager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsFragment extends SupportMapFragment implements OnMapReadyCallback { 

где функция:

@Override 
    public void onResume() { 
    FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
    SupportMapFragment supportMapFragment = (SupportMapFragment) fragmentManager 
      .findFragmentById(R.id.map); 

    supportMapFragment.getMapAsync(this); 
} 

Ошибка является: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference

Обломок XML выглядит следующим образом:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/root" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</RelativeLayout> 

ответ

7

фрагмент карты действует на леденец вам может понадобиться это вместо.

SupportMapFragment supportMapFragment; 
if (Build.VERSION.SDK_INT < 21) { 
    supportMapFragment = (SupportMapFragment) getActivity() 
     .getSupportFragmentManager().findFragmentById(R.id.map); 
} else { 
    supportMapFragment = (SupportMapFragment) getActivity() 
     .getChildFragmentManager().findFragmentById(R.id.map); 
} 
supportMapFragment.getMapAsync(this); 
+0

Этот код помог, но приложение все еще падает. С этой ошибкой: 'java.lang.NullPointerException: попытка вызвать метод интерфейса 'void com.google.maps.api.android.lib6.c.ey.o()' в ссылке нулевого объекта ' – thomas

+0

это точное ошибка, которую я сейчас получаю - "'void com.google.maps.api.android.lib6.c.ey.o()' в ссылке нулевого объекта" – Samuroid

Смежные вопросы