Подтвердить что ты не робот

Android - API Карт Google v2 - Ошибки SupportMapFragment

Я пытаюсь запустить одно из своих приложений в Google Maps API 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" />

И объявлен в теге Application манифеста:

<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)

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

4b9b3361

Ответ 1

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

Ответ 2

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

<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"
...

Ответ 3

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

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

}

Ответ 4

Это сработало для меня: fooobar.com/questions/24840/...

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

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

В моем случае я добавляю:

Файл → Создать → Google → Активность в Google Картах

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