2012-06-22 2 views
0

Я пытаюсь внедрить Google Map, но перед этим сталкиваюсь с некоторыми проблемами. Проблема в том, что при загрузке моего приложения отображается только сетка карты (а не изображение карты).google map in android показать только сетку

Вот мой код ... может ли кто-нибудь увидеть проблему?

Xml Главная

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

    <com.google.android.maps.MapView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/map_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:apiKey=" api key" 
     android:clickable="true" 
     android:enabled="true" /> 

    </LinearLayout> 

Manifest File

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="info.org.NewMap" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="8" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 


    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".NewMapActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <uses-library android:name="com.google.android.maps" /> 
    </application> 

</manifest> 

Java Class

package info.org.NewMap; 

import android.os.Bundle; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
public class NewMapActivity extends MapActivity { 
    /** Called when the activity is first created. */ 

    private MapView mapView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mapView = (MapView) findViewById(R.id.map_view);  
     mapView.setBuiltInZoomControls(true); 
    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

Второй Java Файл

package info.org.NewMap; 
import java.util.ArrayList; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.graphics.drawable.Drawable; 
import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 

public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> { 

    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>(); 

    private Context context; 

    public CustomItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 

    public CustomItemizedOverlay(Drawable defaultMarker, Context context) { 
     this(defaultMarker); 
     this.context = context; 
    } 

    @Override 
    protected OverlayItem createItem(int i) { 
     return mapOverlays.get(i); 
    } 

    @Override 
    public int size() { 
     return mapOverlays.size(); 
    } 

    @Override 
    protected boolean onTap(int index) { 
     OverlayItem item = mapOverlays.get(index); 
     AlertDialog.Builder dialog = new AlertDialog.Builder(context); 
     dialog.setTitle(item.getTitle()); 
     dialog.setMessage(item.getSnippet()); 
     dialog.show(); 
     return true; 
    } 

    public void addOverlay(OverlayItem overlay) { 
     mapOverlays.add(overlay); 
     this.populate(); 
    } 
} 
+0

Вы даете правильный апи карту ключ –

+0

да ур право проблема является апи ключ .. – Youddh

ответ

2

Если вы использовали debug.keystore для получения ключа api для карты, тогда он не будет отображать плитки карт при запуске подписанного приложения со своим собственным хранилищем ключей. Вы подписали свое приложение?

Чтобы работать с картой в подписанном приложении, вы должны получить ключ api из Google с использованием того же хранилища ключей, которое вы использовали для подписи приложения (а не для debug.keystore).

+0

Спасибо, дорогая, моя проблема решена, но я строю api-ключ от debug.keystore, и он работает хорошо. – Youddh

+0

+1 вы правы, если я создаю свой api-ключ из debug.keystore, он работает, но когда я создаю APK моего приложения, это создает проблему, поэтому мне нужно создать с помощью моего приложения keystore. Спасибо ... – Youddh

1

Вы добавили следующие права доступа к вашему приложению в файле AndroidManifest.xml

  1. ИНТЕРНЕТ
  2. ACCESS_FINE_LOCATION
  3. ACCESS_COARSE_LOCATION

С уважением, Aqif Hamid

+0

я уже дал такое разрешение, так Я думаю, что это не проблема. .. – Youddh

-1

отключить прокси-сервер .... карта не будет работать, если прокси-сервер включен ..

+0

Как можно это сделать и что это имеет к чему-либо? – Mugen