Карты Google Android не отображаются - PullRequest
1 голос
/ 30 сентября 2010

Я знаю, что этот вопрос задавался и отвечался ранее, но после выполнения всех инструкций у меня все еще остается та же проблема: у меня есть приложение MapView в моем приложении для Android, но представление показывает только основную сетку (и наложения), но не сама карта.

Я строю проект в Eclipse, если это имеет значение.

У меня есть следующий файл AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication"
      android:versionCode="1"
      android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MyApplication"
              android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
        <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"></uses-library>

Затем в своей оболочке я выполнил следующую команду: $ keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android

и получил следующий вывод: androiddebugkey, Sep 23, 2010, PrivateKeyEntry, Certificate fingerprint (MD5): DF:69:80:83:16:1A:F0:E9:B9:07:B9:BD:F7:BC:DB:61

Я перешел к http://code.google.com/android/maps-api-signup.html и вставил значение DF:69:80:83:16:1A:F0:E9:B9:07:B9:BD:F7:BC:DB:61 в форму и получил следующий ключ API: 0peT6kQ21Tpd1Rs61gBHHtquJwDcNeKkqedT08g.

Мой файл res / layout / main.xml выглядит следующим образом:

<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:clickable="true" android:apiKey="0peT6kQ21Tpd1Rs61gBHHtquJwDcNeKkqedT08g" />

И мой файл MyApplication.java выглядит следующим образом: пакет com.example.myapplication;

import android.os.Bundle;

import com.google.android.maps.MapActivity;

public class MyApplication extends MapActivity {

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

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

Я развернул проект с помощью Eclipse, и мой AVD совместим с Google API 2.1-update1.Я проверил, чтобы убедиться, что проект подписан, и команда $ jarsigner -verify -verbose ~/workspace/MyApplication/bin/MyApplication.apk возвращает следующий вывод:

sm      2200 Thu Sep 30 12:42:16 EDT 2010 res/drawable/icon.png
sm       676 Thu Sep 30 12:42:16 EDT 2010 res/layout/main.xml
sm      1796 Thu Sep 30 12:42:16 EDT 2010 AndroidManifest.xml
sm      1968 Thu Sep 30 12:42:16 EDT 2010 resources.arsc
sm      7816 Thu Sep 30 12:42:16 EDT 2010 classes.dex
         646 Thu Sep 30 12:42:16 EDT 2010 META-INF/MANIFEST.MF
         699 Thu Sep 30 12:42:16 EDT 2010 META-INF/CERT.SF
         776 Thu Sep 30 12:42:16 EDT 2010 META-INF/CERT.RSA

  s = signature was verified 
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

Я дал приложение на AVD около десяти минут, чтобы загрузить изображения карты, и яЯ ничего не получаю.adb logcat не сообщает ни о каких исключениях:

I/ActivityManager(   56): Starting activity: Intent { cmp=com.example.myapplication/.MyApplication }
E/ActivityThread(  259): Failed to find provider info for com.google.settings
E/ActivityThread(  259): Failed to find provider info for com.google.settings
W/MapActivity(  259): Recycling dispatcher com.google.googlenav.datarequest.DataRequestDispatcher@43d1e3b8
V/MapActivity(  259): Recycling map object.
I/ActivityManager(   56): Displayed activity com.example.myapplication/.MyApplication: 376 ms (total 376 ms)

Может кто-нибудь понять, что я делаю здесь неправильно?Любой совет будет принят во внимание.Спасибо.

Ответы [ 4 ]

4 голосов
/ 30 сентября 2010

Добавить интернет-разрешение в манифест ...

<uses-permission android:name="android.permission.INTERNET" />
0 голосов
/ 07 декабря 2011

Добавьте приведенный ниже тег в файл Android manifest.xml в тег приложения, т. Е.

<uses-permission android:name="android.permission.INTERNET" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

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

А также используйте пользовательские отладочные хранилища ключей.Зайдите в окно, выберите настройки, а затем выберите сборку под Android.

0 голосов
/ 02 сентября 2011

Прежде всего, проверьте, можете ли вы получить доступ к Интернету через эмулятор.Попробуйте запустить браузер или Google Maps и выполните поиск.

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

http://justkumar.blogspot.com/2011/09/how-to-access-pcs-internet-from-android.html

0 голосов
/ 30 сентября 2010

Я выключил эмулятор и перезапустил его, и теперь он работает нормально. Я заметил, что новый эмулятор имеет символ «3G», а значок, который показывает прием телефона, имеет две полосы. (В старом эмуляторе не было ни символов 3G, ни 1G, и у него не было никаких полос.) Может, это что-то изменило ...?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...