2013-06-03 2 views
1

Google지도 V2를 구현하려고하지만지도가 공백으로 표시됩니다. 매니페스트를 편집하고 XML 레이아웃과 활동을 만들었지 만지도는 공백으로 표시됩니다.Android google지도가 비어 있습니다.

<permission 
     android:name="com.biznismap.com.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="com.biznismap.com.permission.MAPS_RECEIVE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

및 매니페스트에서 응용 프로그램 노드의 첫 번째 자식으로 이것을에 추가 : 여기

<uses-library android:name="com.google.android.maps" /> 

     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="my_key" /> 

내지도의 XML 레이아웃입니다 : 여기

내가 매니페스트에 무슨 짓을

: 여기
<?xml version="1.0" encoding="utf-8"?> 
<com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:apiKey="my_key" 
    android:clickable="true" /> 

내 MapActivity입니다 16,

public class ListingMap extends MapActivity { 

    private HelloItemizedOverlay itemizedoverlay; 
    private List<Overlay> mapOverlays; 
    private String lat, lng; 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listing_map); 
     MapView mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 

     mapOverlays = mapView.getOverlays(); 
     Drawable drawable = this.getResources().getDrawable(
       R.drawable.ic_launcher); 
     itemizedoverlay = new HelloItemizedOverlay(drawable); 
     getExtras(); 
    } 

    private void getExtras() { 
     Bundle extras = getIntent().getExtras(); 
     lat = extras.getString("lat"); 
     lng = extras.getString("lng"); 
     Log.v("--", lat+" "+lng); 
     float latitude=Float.valueOf(lat); 
     float longitude=Float.valueOf(lng); 
     GeoPoint point = new GeoPoint((int)(latitude * 1E6),(int)(longitude * 1E6)); 
     OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", 
       "I'm in Mexico City!"); 
     itemizedoverlay.addOverlay(overlayitem); 
     mapOverlays.add(itemizedoverlay); 
    } 

} 

내가 뭔가를 표시 할 때 그래서 모든 것이 OK 가고 있지만,지도 비어, 나는 에뮬레이터에서이 얻을 :

06-02 17:09:26.921: E/MapActivity(1772): Couldn't get connection factory client 

그래서 어디 내가 잘못 가고, 어떻게 내가 할 수있는 이 문제를 해결 하시겠습니까?

+0

바보 같은 질문이지만 적절한 키를 추가 했습니까?그리고 당신은 Google API를 사용하여 SDK를 사용할 수 있습니까 – varun

+0

@varun 난 그냥 안드로이드 애플 리케이션을위한 새로운 키를 등록, 내 패키지 이름 등을 입력 한 것 같아요 그래서 나는 그것이라고 생각합니다 –

답변

0

에 대한 Loading Map using Google Map API V2을 확인할 수 있습니다

https://developers.google.com/maps/documentation/android/v1/hello-mapview의 말씀입니다 2013 년 3 월 18 일에이 버전의 API 키를 더 이상 요청할 수 없습니다. Google Maps Android API v1에는 새로운 기능이 추가되지 않습니다. 그러나 v1을 사용하는 앱은 계속해서 기기에서 작동합니다. 기존 및 신규 개발자는 Google Maps Android API v2를 사용하는 것이 좋습니다.

코드는 miximg v1 및 v2 속성입니다.

0

인터넷 연결 (추측)이 없거나 입력 한 키가 잘못되었습니다. 두 가지를 모두 확인하십시오.

또한 테스트 할 수있는 에뮬레이터 (해당되는 경우)에 Google API가 설치되어 있는지 확인하십시오.

+0

문제는 패키지 이름 수 있습니다. 내 주요 패키지는 com.myapp.com이지만 내지도 활동은 com.myapp.com.activities에 있기 때문에? –

1

여기에는 두 가지 문제가 있습니다. v2에서는

<uses-library android:name="com.google.android.maps" /> 

을 사용할 수 없으며 레이아웃이 유효하지 않습니다. 당신의 자바 코드에

<FrameLayout 
... > 

    <fragment 
     ... 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment" /> 
</FrameLayout> 

을 FragmentActivity를 사용 : 당신이 전체 레이아웃지도를 원하는 경우에, 다만 이것을 사용

map = ((SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.your_id)).getMap(); 

이 방법, 당신은 사전에 벌집 장치와 compatibity을 얻을 것이다. 행운을 빕니다!

+0

@Divya Motiwala 동일 응답;) – webo80

+0

동일한 응답이면 왜 대답이 허용됩니까? – Manny265

+0

내 대답이 유효하고, 예를 보여 주며, 출판 된 첫 번째 기사라고 생각하는 것을 계속합니다. 그러나 그것은 Darko의 결정입니다. – webo80

0

MapView은 API v2에서 더 이상 사용되지 않습니다. 대신 사용

<fragment 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:name="com.google.android.gms.maps.SupportMapFragment"/> 

는 따라서, 대신 MapActivityFragmentActivity를 사용하여지도를 팽창.

: Google지도 안드로이드 API의 버전 1은 공식적으로 12 월 3 일로 사용되지 않습니다, 2012 년이에서 것을 의미 당신은 자세한 내용

다음
관련 문제