Хорошо, вот что я сделал, используя пример
- Получил ключ отладки с помощью keytool (убедитесь, что ключ отладки используется eclipse в настройках → Android → Build)
-
Сгенерированный ключ командой
$keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android
-
Скопируйте сумму SHA1 в Консоль API Google + мое имя_пакета:
сумма; com.my.package
-
Включен API карт Google v2 в том же проекте в консоли API Google
-
Скопировал его в приложение манифест в метаданных.
-
Скачан через менеджер SDK и импортирован проект google-play-services_lib и назвал его проектом библиотеки. Как и ActionBarSherlock.
-
Перед запуском я уверен, что доступны сервисы GooglePlayServices.
манифеста:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="com.my.package.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/>
<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.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Применение:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="debug_key"/>
Также добавляются материалы proguard, но я не запутываю прямо сейчас.
АптекиMapActivity расширяет возможности SherlockFragmentActivity
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map_fragment"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
project.properties
target=android-17
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../ActionBarSherlock
В ActionBarSherlock есть поддержка android-support-v4 в libs, а не основной проект, если это имеет значение.
StartupActivity гарантирует, что DrugstoresMapActivity будет запущен, только если доступные сервисы
private void attempt() {
int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
switch (result) {
case ConnectionResult.SUCCESS:
startActivity(new Intent(this, DrugstoresMapActivity.class));
finish();
break;
default:
GooglePlayServicesUtil.getErrorDialog(result, this, REQUEST_DIALOG)
.show();
break;
}
}
Двойная проверка ключей в порядке. Не знаю, что я пропустил здесь.