2013-06-07 2 views
1

Android 4.2에서이 문제가 발생했습니다. 세 개의 장치가 있습니다. 하나는 4.1.1이고 다른 하나는 4.2입니다. 4.1 전화 getSupportFragmentManager(). getMap()지도를 반환, 나는 그것을 볼 수 있습니다, 내 위치 등을 찾을 수 있습니다. 하지만 두 가지 경우에 null을 반환합니다. 4.2에Android 4.2 getSupportFragmentManager(). getMap()이 null을 반환합니다.

mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
mMap.setMyLocationEnabled(true); 
mMap.getUiSettings().setMyLocationButtonEnabled(false); 
mMap.setOnMyLocationChangeListener(this); 

마지막 세 줄의 각 NullPointerException이 발생합니다 :

여기지도 설정에 내 코드입니다. 4.1에서는 모두 작동합니다.

왜 그런 일이 발생합니까?

추 신 : Google지도는 4.2에서 훌륭하게 작동합니다. 그리고 "내 위치"버튼도 작동합니다. PS2 : "내 위치 액세스", "GPS Sattelites"및 "Wi-Fi & 모바일 네트워크 위치"설정이 켜져 있습니다.

+0

당신이 구글이 장치에 Play 서비스 설치 한 다음과 같은 방법을 사용하여지도를받을 수있는 편리한 방법을 만들어? – matreshkin

+0

이 링크를 방문하면 도움이 될만합니다 –

답변

1

구글은 지금

myMapFragment.getMapAsync(new OnMapReadyCallback) { 
    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     myMap = googleMap; 
     // Put your code here 

    } 
}); 
3

Google Play 서비스가 설치되어 있는지 확인하십시오. 그리고지도 컨트롤러가 시작되기 전에 잠시 기다려야 할 수도 있습니다.

mHandler = new Handler(); 
mHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       GoogleMap map = getMap(); 
       if (map != null) { 
        map.setMyLocationEnabled(true); 
        // INIT HERE 
        map.getUiSettings().setMyLocationButtonEnabled(false); 
        // ... 

       } else mHandler.post(this); 
      } 
     }); 
+0

고마워요. 나는 플레이 서비스와 업데이트 된 구글 앱을 설치했습니다. 이제 작동합니다! – NonGrate

관련 문제