Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
#1

Google map - Программирование Android

04.09.2013, 15:02. Просмотров 1050. Ответов 6
Метки нет (Все метки)

Всем привет! Пишу плагин для юнити 3d для отображения карты google map.
Одна загвоздка есть, отображается только серая сетка http://gyazo.com/2fd1d8cb4ea68dcab1cf2803cafc5e7a
в консоле http://gyazo.com/5a4bc7f080293ffe0bd56166e0f499ee
знаю, что эта ошибка из-за apikey, но я вроде сгенерил дебажний ключ, засунул в xml. В гугл консоли активировал google api v2 android.
Если у кого-то будет желание помочь, можете глянуть проект https://www.dropbox.com/s/r50rcd31del16hw/android-my-map-location.zip

Сама карта, при подключении к движку зумится, скролится нормально, только не отображается ) В jave пока не очень, думаю где-то в xml-ках что-то не так делаю
http://www.cyberforum.ru/android-dev/thread949922.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 15:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Google map (Программирование Android):

Скриншот google map
Дайте пожалуйста пример того, как сделать скриншот карты google (api v2) и...

Не отображается Google map!
Решил заняться разработкой приложений под android. Написав простое приложение...

google map v2 outOfMemory
Подскажите пожалуйста, в чём может быть проблема. При перемещении карты google...

Google Map на устройстве
Здраствуйте Столкнулся с проблемой отображения гугл карт. Про компилировании...

Не отображается Google map
Добрый день. Сразу скажу, перерыл весь форум, но это не помогло. Я начинаю...

6
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
04.09.2013, 21:05 #2
Цитата Сообщение от gate1 Посмотреть сообщение
засунул в xml. В гугл консоли активировал google api v2 android.
Ключи для карт версии 1 прописываются в xml, а для google api v2 прописываются в манифесте
0
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
04.09.2013, 22:31  [ТС] #3
пробовал по разному, ничего не выходит...
http://gyazo.com/61aef576844bfd2a5e3c323ec090321d
http://gyazo.com/5f9b9a38a5841309c5b59af090a0b62c
для мобильных платформ v2 последняя или используют версию 3? Если используют 3, то сколько еще будет поддерживаться вторая?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
05.09.2013, 01:14 #4
Цитата Сообщение от gate1 Посмотреть сообщение
для мобильных платформ v2 последняя
Для мобильных платформ есть версия 1 и 2.

Добавлено через 52 секунды
Покажите код активити с картой
0
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
05.09.2013, 17:05  [ТС] #5
класс с активити картой
Кликните здесь для просмотра всего текста

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
package com.yvadim.GoogleMapPlugin;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.support.v4.app.FragmentActivity;
 
public class MainActivity extends Activity{
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}


манифест
Кликните здесь для просмотра всего текста

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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yvadim.GoogleMapPlugin"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
 
    <permission
          android:name="com.yvadim.GoogleMapPlugin.permission.MAPS_RECEIVE"
          android:protectionLevel="signature"/>
    <uses-permission android:name="com.yvadim.GoogleMapPlugin.permission.MAPS_RECEIVE"/>    
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>     
    <uses-permission android:name="com.yvadim.GoogleMapPlugin.permission.READ_GSERVICES"/> 
    <!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->       
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
        
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
    <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="AIzaSyAbST5W-qwvH2267KC9tY1rgD-clo90OM4"/>
        
        
        <activity
            android:name="com.yvadim.GoogleMapPlugin.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>


activity_main.xml
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
 
<fragment
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          class="com.google.android.gms.maps.MapFragment" />
    
</RelativeLayout>


play service добавил в воркспейс
gyazo.com/4fd3a2f017c834026ef4509fb97969a3
линк тоже gyazo.com/1cfbbff2a1d70cab66406c6c5d6c77ba

сейчас такие ошибки вылазят
Кликните здесь для просмотра всего текста

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
09-05 08:01:46.908: E/AndroidRuntime(4189): FATAL EXCEPTION: main
09-05 08:01:46.908: E/AndroidRuntime(4189): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yvadim.GoogleMapPlugin/com.yvadim.GoogleMapPlugin.MainActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.os.Looper.loop(Looper.java:137)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread.main(ActivityThread.java:5103)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at java.lang.reflect.Method.invokeNative(Native Method)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at java.lang.reflect.Method.invoke(Method.java:525)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at dalvik.system.NativeStart.main(Native Method)
09-05 08:01:46.908: E/AndroidRuntime(4189): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Activity.setContentView(Activity.java:1895)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at com.yvadim.GoogleMapPlugin.MainActivity.onCreate(MainActivity.java:15)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Activity.performCreate(Activity.java:5133)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
09-05 08:01:46.908: E/AndroidRuntime(4189):     ... 11 more
09-05 08:01:46.908: E/AndroidRuntime(4189): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Fragment.instantiate(Fragment.java:592)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Fragment.instantiate(Fragment.java:560)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Activity.onCreateView(Activity.java:4738)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
09-05 08:01:46.908: E/AndroidRuntime(4189):     ... 21 more
09-05 08:01:46.908: E/AndroidRuntime(4189): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.MapFragment" on path: DexPathList[[zip file "/data/app/com.yvadim.GoogleMapPlugin-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.yvadim.GoogleMapPlugin-1, /vendor/lib, /system/lib]]
09-05 08:01:46.908: E/AndroidRuntime(4189):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
09-05 08:01:46.908: E/AndroidRuntime(4189):     at android.app.Fragment.instantiate(Fragment.java:582)
09-05 08:01:46.908: E/AndroidRuntime(4189):     ... 24 more


Добавлено через 44 минуты
Так, пока этот вопрос решил, при импорте гугл плей сервис забыл чекбокс поставить copy to workspace






Добавлено через 1 час 17 минут
----------------------------------------------------------------------------
UPDATE
Подскажите пожалуйста, как добавить SupportMapFragment в программно созданный layout (мне нужно избавится от использования activity_main.xml http://gyazo.com/636bee434cd2b76a3606ace70cc5f21a)

что передать в setContentView
Кликните здесь для просмотра всего текста

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
package com.yvadim.GoogleMapPlugin;
 
import android.os.Bundle;
 
import android.app.Activity;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
 
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import com.unity3d.player.UnityPlayer;
 
    
public class MainActivity extends FragmentActivity{
    private GoogleMap mMap;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SetUpMap();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    private void SetUpMap()
    {
        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        //linearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
        //linearLayout.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
        linearLayout.setGravity(Gravity.CENTER); 
       // linearLayout.addView(R.id.map);       
        //setContentView(R.layout.activity_main); 
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.map);
        SupportMapFragment mapFragment = (SupportMapFragment)fragment;
        mMap = mapFragment.getMap();            
        
            setContentView();   ????
        
        
        
    }
 
}
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
05.09.2013, 21:09 #6
Я вас просто отправлю вот сюда http://android-er.blogspot.com/2012/...ogle-maps.html , там всё пошагово написано
1
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
06.09.2013, 16:52  [ТС] #7
Спасибо!

Добавлено через 19 часов 14 минут
Напишу как мап фрагмент в активити подключать динамически, мб кому понадобиться
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
         Log.d("MyMessages", "in ViewActivity.onCreate");        
         RelativeLayout mainLayout = new RelativeLayout(this);
         mainLayout.setId(123);
         setContentView(mainLayout);         
         Log.d("MyMessages", "ViewActivity Before newInstance");
         MapFragment frag = MapFragment.newInstance(); //This is where it used to crash with it's damn classnotfound exception
 
         Log.d("MyMessages", "in ViewActivity After newInstance");
        
         FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
         fragmentTransaction.add(mainLayout.getId(), frag);
         fragmentTransaction.commit();
    }
0
06.09.2013, 16:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 16:52
Привет! Вот еще темы с решениями:

Google map что за элемент
Как называется этот элемент? Можно-ли заставить его передвигаться (например...

Рисование маршрута на Google Map
Есть поле 2 поля Edit Text пользователь вводит туда адрес начальной и конечной...

Как включить поиск в google map?
После добавления google map хочу добавить поиск сверху. Чтобы при вводе найти...

Не работают Google Map в стандартном приложении
Здравствуйте! Создал в Android Studio обычное приложение с Blank Activity ...


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

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

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