Подтвердить что ты не робот

Android Google Map API V2 Пустой экран

Привет, я недавно воспользовался Vogella учебником по Google Map API v2. Код похож на его. Но по какой-то причине карта отображается пустым, а логарифм также не показывает ошибок. Я также следил за этим видео, чтобы получить отпечаток пальца SHA1, затем я поместил ключ API в файл манифеста. Я использовал хранилище отладки C:\Users\UserName.android\debug.keystore, которое также является хранилищем отладки по умолчанию, расположенным в Eclipse → Windows → Preference → Android → Build.

Я также создал новый ключ API, и он все еще не работает.

Файл манифеста:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.barcodelibrary"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="15" />

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

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:name="android.hardware.camera.flash" />

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".HomeActivity"
            android:label="@string/title_activity_home" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <activity android:name=".ScanActivity"/>
        <activity android:name=".MapActivity"/>
        <activity android:name=".BarcodeHelper"/>
        <activity android:name=".JsonHelper"/>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="my api key" />
    </application>

</manifest>

Это мой файл макета для активности карты:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapActivity" >

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

</RelativeLayout>

Это моя активность на карте:

public class MapActivity extends Activity 
{
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();
            Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
            Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.ic_launcher)));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_map, menu);
        return true;
    }
}

Спасибо!

4b9b3361

Ответ 1

У вас есть пара разрешений с вашим манифестом. Во-первых, в следующем вам нужно заменить имя пакета на ваш пакет, вам также нужно как uses-permission

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

за ваше имя пакета, должно быть -

<permission
          android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
          android:protectionLevel="signature"/>
<uses-permission android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>

Наконец, вам кажется, что отсутствуют следующие разрешения из раздела указание разрешений Руководство по началу работы -

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

Ответ 2

Для меня оказалось, что я не включил Google Maps Android API v2. Мы использовали другой API Карт Google, который, как я предполагал, был таким же.

Ответ 3

Если это не сработало, следуйте этому

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

1 - тщательно просмотрите все шаги этот учебник.

2. Если пустой экран все тот же, удалите файл хранения файла отладки, который существует в c:\Users\youUser.android\debug.keystore < - удалить этот файл

3. На eClips IDE перестройте приложение, чтобы оно автоматически создало этот файл. 4-On eclips перейдите в Window → preferences → android → Build скопируйте свежую сгенерированную SHA1, а затем следуйте шагам генерации обычного ключа. 5-Run на вашем реальном устройстве, и я надеюсь, что вы увидите свою карту:)

Ответ 4

Вы должны запустить свое приложение в амулете, имеющем следующую конфигурацию.... 1) Google API (образ системы x86) 2) выберите checkBox, указывающий Use Host GPU.

Ответ 5

Мне пришлось добавить правильный отпечаток сертификата SHA-1 на мою консоль разработчика Google.

  • Отобразить текущий отпечаток: keytool -list -keystore ~/.android/debug.keystore

  • Скопируйте отпечаток пальца (например, 48: 6F: 55: B7: C5: E4: 54: E1: 29: D5: E1: E1: E2: A8)

  • Добавьте его в свои учетные данные для этого конкретного приложения в Google Developer Console

Ответ 7

Задайте настраиваемые ключевые слова так же, как и по умолчанию (Eclipse). И зарегистрируйте ключ API в консоли Google, как сказано в документации.

Ответ 8

У меня есть аналогичная проблема с картой. После исправления всех проблем с lib и ключами я просто увидел белый экран с "Google". Проблема заключалась в том, что я положил MapFragment в ScrollView. После удаления ScrollView все работает нормально. Я вижу карту.

Ответ 9

Android Studio: убедитесь, что вы поместили свой ключ в правильную иерархию

введите описание изображения здесь

Ответ 10

В моем случае это было существующее приложение, которое я клонировал из GitHub и не изменил ключ API. Для меня это помогло включить SHA-1 моего сертификата подписи. Следуйте этим коротким инструкциям, чтобы получить отпечаток SHA-1.

Затем у меня был главный разработчик, добавив мой отпечаток SHA-1 в авторизованные пакеты для его соответствующего API-ключа здесь. Затем я сделал сборку таким же образом, и это сработало.

Ответ 12

У меня аналогичная проблема, когда отладка была в порядке, но пустой экран в выпуске. API-ключи были в порядке.

Что сработало, заменив это:

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

Под этим

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

Добавить непосредственно ваш ключ api без строки ressource