it-swarm.com.ru

Android - Google Maps API v2 - SupportMapFragment Ошибки

Я пытаюсь восстановить одно из моих приложений и запустить их с API Карт Google v2 в первый раз. Я создал ключ для своего приложения в своем хранилище ключей, извлек хэш SHA1, получил ключ API, а затем сделал следующее встроенное приложение ... Я включил:

google-игра-services.jar

а также импорт библиотеки GooglePlayServices и добавление ее в качестве ссылки на проект. В моем Java-коде я просто загружаю ресурс макета.

public class Times extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
    }
}

В макете (res/layout/map.xml), который я пытаюсь создать, у меня есть:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/map"
    Android:name="com.google.Android.gms.maps.SupportMapFragment"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent" />

В моем манифесте также указано следующее:

<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission Android:name="tinyTech.us.ua.busschedule.permission.MAPS_RECEIVE" />

<permission
    Android:name="tinyTech.us.ua.busschedule.permission.MAPS_RECEIVE"
    Android:protectionLevel="signature" />

<uses-feature
    Android:glEsVersion="0x00020000"
    Android:required="true" />

И заявлено в теге приложения манифеста:

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

При загрузке действия происходит сбой со следующими ошибками в LogCat:

FATAL EXCEPTION: main
Java.lang.NoClassDefFoundError: com.google.Android.gms.R$styleable
    at com.google.Android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)

Я попытался исследовать проблему, однако не смог найти то, что искал. Любая помощь очень ценится.

13
Matt Clark

Вам необходимо расширить FragmentActivity, если вы используете SupportMapFragment. Если вы используете MapFragment, вы можете расширить Activity.

23
Paul Wein

В вашем макете используйте 

<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:id="@+id/map"
              Android:layout_width="match_parent"
              Android:layout_height="match_parent"
              class="com.google.Android.gms.maps.SupportMapFragment"/>

вместо

...    
Android:name="com.google.Android.gms.maps.SupportMapFragment"
...
12
Rodion Altshuler

Вы должны сделать это:

public class MainActivity extends Android.support.v4.app.FragmentActivity{

}
7
Jovan

Это сработало для меня: https://stackoverflow.com/a/13744765/1215098

Похоже, вы должны добавить сервисы Google Play как модуль, а не как .jar

5
uncle Lem

Я решил эту ошибку, установив флажок «Копировать проекты в рабочую область» при импорте библиотеки Google Play Services.
Подробнее здесь: http://developer.Android.com/google/play-services/setup.html

5
Umberto

у меня была такая же проблема с Google Play Services и все остальное .. я включил в качестве библиотеки и все, и проблема все еще сохраняется (" не удалось найти com.google.Android.gms.maps.suportmapfragment ") ..

я смог исправить это: Переход к свойствам проекта. Затем select Путь сборки Java . Затем выберите Порядок и экспорт tab . Затем Убедитесь, что вы проверили Зависимости Android и Android Частные библиотеки

Надеюсь это поможет :)

1
Omar B.

Я добавил <uses-library Android:name="com.google.Android.maps" /> в файл манифеста .... Это сработало для меня!

0
LuZa

Мой случай, я добавляю:

Файл -> Новый -> Google -> Google Maps Activity

И я следую этому учебник

0
William

Я думаю, что у меня была та же проблема, кажется, что в новых версиях вы должны добавить эту строку в манифесте 

<meta-data
    Android:name="com.google.Android.gms.version"
    Android:value="@integer/google_play_services_version" />
0
fire_at_rivky