Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
AlexIach
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 67
#1

Google Maps API v2. Не отображается карта - Программирование Android

03.07.2015, 12:25. Просмотров 825. Ответов 6
Метки нет (Все метки)

Доброго времени суток. На днях решил поработать с Google API Maps. И столкнулся с такой проблемой. Создал приложение, создал API Key Импортировал всё что нужно,все необходимые Permissions добавил,компилятор никаких ошибок не выдаёт. Создаю APK файл,устанавливаю на свой девайс,открываю проект и вот тут загвоздка,нет, никаких ошибок и закрытия программы,проблема в том что на карте ничего нет,она просто бежевого цвета и только внизу слева надпись Google. Перерыл много инфы,не знаю с чем это связано. Кто сталкивался с такой проблемой подскажите пожалуйста в чём дело. P.s Версия Android на устройстве 4.1, OpenGL ES 2 поддерживает.


Код главного Activity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.iachimovalex.routetracker;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
import android.view.MenuItem;
 
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
 
 
public class RouteTracker extends Activity {
 
    private final LatLng ChisinauLocation = new LatLng(47.003670,28.907089);
    private GoogleMap map;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_route_tracker);
 
        try {
            // Loading map
            initilizeMap();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
 
 
    }
 
    private void initilizeMap() {
        if (map == null) {
            map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(ChisinauLocation,16));
            map.addMarker(new MarkerOptions().position(ChisinauLocation).title("My native City is Here!"));
 
            // check if map is created successfully or not
            if (map == null) {
                Toast.makeText(getApplicationContext(),
                        "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                        .show();
            }
        }
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_route_tracker, menu);
        return true;
    }
 
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
 
        switch(id){
            case R.id.mapItem:
                map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                return true;
            case R.id.satelliteItem:
                map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
                return true;
            case R.id.hybridItem:
                map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                return true;
            default:
                return super.onOptionsItemSelected(item);
 
        }
 
    }
 
}
Код LayOut файла:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
 
 
 
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </fragment>
 
 
</RelativeLayout>
Манифест файл:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.iachimovalex.routetracker" >
 
 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
 
    <permission
        android:name=".RouteTracker.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
 
    <uses-permission android:name=".RouteTracker.permission.MAPS_RECEIVE" />
 
 
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
 
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".RouteTracker"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data android:name="com.google.android.maps.v2.API_KEY" 
                   android:value="AIzaSyCZgotGXIbfJ1EoAFeUO5hxrC4sWSOd1zg"
        />
        <meta-data android:name="com.google.android.gms.version"
                   android:value="@integer/google_play_services_version"
        />
    </application>
 
</manifest>

И так как я работаю в Android Studio 1.2.2 в Gradle Scripts я добавил

XML
1
2
3
4
5
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.google.android.gms:play-services:7.5.0'
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 12:25     Google Maps API v2. Не отображается карта
Посмотрите здесь:
Android Google Maps не отображается карта после сборки apk
Google maps API v2 Android
Android Google Maps API v2+ SlidingMenu
Google Maps API v2 Оповещание Android
Google Maps Api Key Android
Использование Google Maps API V2 Android
Android Google Maps/Drive API for Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Фаер
638 / 367 / 68
Регистрация: 09.12.2011
Сообщений: 733
Записей в блоге: 35
14.07.2015, 15:57     Google Maps API v2. Не отображается карта #2
Немного некропост получается, но проблема бежевой карты очень распространена, и я(для себя, по крайней мере) её решил, причём решение не в нете нашёл(что и исправляю), а случайно сам допёр.

Android-пакет я собирал через Eclipse, путём ПКМ по проекту->Export->Android Application. Запросив имя пакета и файл сертификата, Eclipse перед самой сборкой показывает MD5 и SHA1. Так вот, этот экспортный SHA1 зачастую не совпадает с системным(который можно найти в Preferences Eclipse'а). В этом, собственно, и была моя проблема. Я взял экспортный SHA1, сгенерировал по нему новый API-ключ в панели Google API, вставил этот ключ в Манифест, и всё, заработало.
Gr_And
-1 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 28
20.10.2015, 13:07     Google Maps API v2. Не отображается карта #3
А если используется Android Studio? Там нет ни MD5, ни SHA1...
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
20.10.2015, 14:09     Google Maps API v2. Не отображается карта #4
Gr_And, ручками через keytool
Gr_And
-1 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 28
20.10.2015, 14:24     Google Maps API v2. Не отображается карта #5
я так и делал - ручками. но проблема, описанная тут осталась. есть два api ключа, но не работает на телефоне. в эмуляторе - да.

Добавлено через 4 минуты
Цитата Сообщение от YuraAAA Посмотреть сообщение
Gr_And, ручками через keytool
может есть какие-то рекомендации? очень пригодились бы..
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
20.10.2015, 14:31     Google Maps API v2. Не отображается карта #6
Gr_And,
Код
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
выдаст SHA-1 отпечаток
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 14:42     Google Maps API v2. Не отображается карта
Еще ссылки по теме:
Ошибка при работе с Google Maps API v2 Android
Android Добавление маркеров на карту Google Maps API v2
Android Лимит на запросы в Google Maps Directions API
Android Добавление маркеров на карту Google Maps API v2
Google Maps API v2 добавление своих маркеров и фото к ним Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Gr_And
-1 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 28
20.10.2015, 14:42     Google Maps API v2. Не отображается карта #7
Цитата Сообщение от YuraAAA Посмотреть сообщение
Gr_And,
Код
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
выдаст SHA-1 отпечаток
да, я это все проделал. Здесь сгенерировал api-ключи. на эмуляторе работает. после создания apk-файла и установки - на телефоне не работает. вопрос: в чем может быть проблема?
Yandex
Объявления
20.10.2015, 14:42     Google Maps API v2. Не отображается карта
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru