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

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

Войти
Регистрация
Восстановить пароль
 
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
#1

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

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

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

Сама карта, при подключении к движку зумится, скролится нормально, только не отображается ) В jave пока не очень, думаю где-то в xml-ках что-то не так делаю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 15:02     Google map
Посмотрите здесь:

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

Вьюшки на Google Map v2 - Программирование Android
Привет! Необходимо к гугл мапе прикрутить панель, поиска места по названию, просветите плиз, как правильно добавить компоненты на...

Не отображается Google map! - Программирование Android
Решил заняться разработкой приложений под android. Написав простое приложение по загрузке карт Google в fragment столкнулся с проблемой...

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

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

Скриншот google map - Программирование Android
Дайте пожалуйста пример того, как сделать скриншот карты google (api v2) и установления его в imageView. На просторах интернета находил...

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

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

Добавлено через 52 секунды
Покажите код активити с картой
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
05.09.2013, 17:05  [ТС]     Google map #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();   ????
        
        
        
    }
 
}
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
05.09.2013, 21:09     Google map #6
Я вас просто отправлю вот сюда http://android-er.blogspot.com/2012/...ogle-maps.html , там всё пошагово написано
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2013, 16:52     Google map
Еще ссылки по теме:

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

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

Подключение Google Map к приложению для Android - Программирование Android
Все доброго времени суток. Вопрос заюзанный, но как-то полного описания установки так и не нашел. Пересмотрел много информации, но...

Почему Google map долго грузит детали карты в определенных координатах? - Программирование Android
Добрый день! Использую в приложении Google map. Обнаружил странную вещь: если переместить позицию карты в разные координаты, то разное...

Clustering markers on the map v2 - Программирование Android
Народ, кто нибудь занимался класторизацией на карте? Я тут бьюсь весь день пытаюсь сделать что бы работало как надо, но все никак не...


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

Или воспользуйтесь поиском по форуму:
gate1
2 / 2 / 0
Регистрация: 11.12.2011
Сообщений: 51
06.09.2013, 16:52  [ТС]     Google map #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();
    }
Yandex
Объявления
06.09.2013, 16:52     Google map
Ответ Создать тему
Опции темы

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