2010-09-28 4 views
1

У меня проблемы с MapView, потому что он не загружает карту. Я читал и нашел много людей с той же проблемой. Я проверил все возможные проблемы, и кажется, что все в порядке: PAndroid MapView не загружается

  • На манифеста, то есть внутри тега

  • Я имею перед тегом

  • В эмуляторе 3G работает должным образом, так как я могу перемещаться с браузером и Google Maps загружается отлично

  • Я проверил дважды мой ApiKey и, кажется, все в порядке. Им с помощью Windows, поэтому в ЦМД я перейдите к папке, где Java Keytool находится, как только там я выполнить следующую команду, чтобы получить отпечатки пальцев, а затем мой ApiKey:

Keytool -list -alias androiddebugkey -storepass андроид -keypass андроид -key магазин C: \ путь \ где \ папка \ файл \ в \ находится \ debug.keystore

Вот некоторые из моего кода:

public class mapa extends MapActivity { 

private MapView mMapView = null; 
private MapController mc = null; 


/** Called when the Activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mapa); 

    GeoPoint gPoint = new GeoPoint(40331175,-3765780); 

    mMapView = (MapView) findViewById(R.id.mView); 
    mMapView.setSatellite(true); 
    mMapView.setBuiltInZoomControls(true); 

    mc = mMapView.getController(); 
    mc.setZoom(15); 
    mc.setCenter(gPoint); 
    } 

Схема XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

<com.google.android.maps.MapView 
    android:id="@+id/mView" 
    android:layout_width="fill_parent" 
    android:layout_height="375dp" 
    android:padding="5dp" 
    android:enabled="true" 
    android:clickable="true" 
    android:apiKey="My_Api_Key" /> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="3dp" 
    android:orientation="vertical"> 

    <TextView 
    android:id="@+id/tMapa" 
    android:text="Último dato" 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    //Here i have some other info, but its not relevant to the problem, since all this views loads properly :P 

    </RelativeLayout>  

</LinearLayout> 

AndroidManifest:

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

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.INERNET" /> 
    <uses-permission android:name="android.permission.WRITE_GSERVICES" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

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

       <!-- I've got here some others Activities declared --> 

    <!-- This is the map Activity --> 
    <activity android:name=".mapa" 
     android:label="@string/app_name" 
     class=".mapa"> 

    </activity> 

</application> 

    <uses-sdk android:minSdkVersion="4" /> 

</manifest> 

Таким образом, я не знаю, что еще я могу сделать, чтобы решить эту проблему.

Может кто-нибудь мне помочь? : D

ответ

0

Долгое время назад, так как я решил эту проблему (как я объясняю в комментарии я сделал для CommonsWare ответа). Просто напишите его здесь, чтобы сделать его «официальным» xD:

«ApiKey был прав, и все остальное было также правильным, за исключением того, что Интернет использует разрешение на Manifiest. Я ошибался в INTERNET INERNET ¬_¬. Я не понимаю, почему Eclipse не предупреждает об этом: P «

1

Вы не объясняете, что означает «его негрузка карты», что затрудняет вам помощь.

Вы не предоставили действительный ключ API в вставленном коде, что еще более затрудняет вам помощь.

Here is a working MapView project - просто вставьте свой собственный ключ API. Если это не удается, все же автономное приложение Maps прекрасно работает в одном и том же эмуляторе/устройстве, тогда ваш ключ API, вероятно, недействителен.

+1

« Не загружается »означает, что MapView был показан правильно, но единственное, что я вижу, это серые квадраты, что означает, что« карта не была загружена ». Во всяком случае, я нашел решение своей проблемы, ApiKey был прав, и все остальное было также правильным, за исключением использования Интернета - разрешения на Manifiest. Я ошибался ИНТЕРНЕТ для INERNET ¬_¬ «Я не понимаю, почему Eclipse не предупреждает об этом: P – Kitinz

2

Наши разработчики Android также столкнулись с этой проблемой. Мы решили проблему следующим образом:

  1. Мы сгенерировали ключи API от каждой машины и добавили ключ в соответствующий файл main.xml. Поэтому у каждого разработчика был отдельный ключ api.

  2. Мы начали эмулятор из командной строки с помощью андроида команды «эмулятор», который находится в каталоге инструментов и начал с опцией прокси вместо того, чтобы запустить его из Eclipse, например:

E:> эмулятор -avd New_Device -http прокси http://202.0.0.203:808

+0

Спасибо, Бо Перссон –