Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
AlexIach
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 68
1

Google Maps API v2. Не отображается карта

03.07.2015, 12:25. Просмотров 1420. Ответов 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'
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 12:25
Ответы с готовыми решениями:

Google Maps не отображается карта после сборки apk
Добрый день. Помогите пожалуйста советом. Написал приложение с использованием карт Google...

Google maps API v2
Перешёл на новые API для карт google. Программирую под платформу 2.2, поэтому использую...

Использование Google Maps API V2
Добрый день. Сейчас делаю один проект под Android, а так как в этом я почти полный новичок возник...

Google Maps Directions API
В Android Studio создала приложение, которое на Google карте должно показать маршрут через...

Google Maps API v2+ SlidingMenu
Написал простенькое приложение с выдвижной формой, в одном из разделов выдвижной форму находится...

6
Фаер
643 / 372 / 259
Регистрация: 09.12.2011
Сообщений: 734
Записей в блоге: 35
14.07.2015, 15:57 2
Немного некропост получается, но проблема бежевой карты очень распространена, и я(для себя, по крайней мере) её решил, причём решение не в нете нашёл(что и исправляю), а случайно сам допёр.

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

Добавлено через 4 минуты
Цитата Сообщение от YuraAAA Посмотреть сообщение
Gr_And, ручками через keytool
может есть какие-то рекомендации? очень пригодились бы..
0
YuraAAA
1582 / 1322 / 283
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
20.10.2015, 14:31 6
Gr_And,
Код
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
выдаст SHA-1 отпечаток
0
Gr_And
-1 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 28
20.10.2015, 14:42 7
Цитата Сообщение от YuraAAA Посмотреть сообщение
Gr_And,
Код
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v
выдаст SHA-1 отпечаток
да, я это все проделал. Здесь сгенерировал api-ключи. на эмуляторе работает. после создания apk-файла и установки - на телефоне не работает. вопрос: в чем может быть проблема?
0
20.10.2015, 14:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 14:42

Google Maps Api Key
Здравствуйте! Создал приложение с использованием Google Maps. Для её работы требуется Api Key....

Google Maps API v2 Оповещание
Помогите пожалуйста. Ставлю на карте маркер: public void onMapLongClick(LatLng latLng) {...

Google Maps/Drive API for Android
Столкнулся с такой пробелмой, пару месяцев назад написал приложение , которое использует API Гугл...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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