Я пытаюсь создать официальный образец android google map api v2 на телефоне (пряничный 2.3.5).
Я добавил android-support-v4.jar
в официальный образец проекта.
Я взял образец из официального учебника в <android-sdk>/extras/google-play-services/samples/maps
Я скопировал пример приложения в Eclipse, ссылаюсь на проект google-play-services_lib
как на библиотеку Android и строю все это с Android SDK 4.1.2 (api 16).
К сожалению, когда я запускаю приложение, карта пуста, и у меня нет никакого исключения или сообщения. Единственное, что у меня есть, это подозрительные строки в logcat:
Unable to resolve superclass of Lmaps/a/du; (411)
Link of class 'Lmaps/a/du;' failed
Unable to resolve superclass of Lmaps/a/ej; (2363)
Link of class 'Lmaps/a/ej;' failed
Unable to resolve superclass of Lmaps/j/k; (2379)
Link of class 'Lmaps/j/k;' failed
ERR Не удалось найти класс 'maps.j.k', на который ссылается метод maps.y.ae.a
VFY: невозможно разрешить новый экземпляр 3571 (Lmaps/j/k;) в Lmaps/y/ae;
Я подозреваю, что моя структура проекта в eclipse 3.8 несколько запутана.
Я пробовал следующие вещи (даже самые идиотские) безрезультатно.
1. Неверный ключ api?
Я сгенерировал "debug.keystore" с keytool и обновил предпочтение eclipse (Android/Build/Keystore). Конечно, я зарегистрировал новое хранилище ключей /SHA 1 и получил новый ключ api, который я использовал в файле AndroidManifest
2. Неверная цель проекта?
Я попытался построить два моих проекта со следующими целями:
- Android 4.2.1
- Google Api 4.2.1
3. добавление google-play-services_lib в зависимости от проекта
Я попытался добавить google-play-services_lib в качестве зависимости проекта от того, чтобы добавить его в качестве библиотеки андроида в путь создания демо. Установите галочку напротив соответствующего экспорта.
4. проверить карты Google api v2 на телефоне
Я загрузил приложение trulia real estate, которое, как говорят, использует v2 api на телефоне, чтобы убедиться, что телефон совместим с новым api
Вот манифест для примера приложения
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapdemo"
android:versionCode="1"
android:versionName="1.0" >
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
<!-- Copied from Google Maps Library/AndroidManifest.xml. -->
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Maps API needs OpenGL ES 2.0. -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<!-- End of copy. -->
<application
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
android:label="@string/demo_title" >
<!-- You must insert your own Google Maps for Android API v2 key in here. -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXXXXX" />
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".BasicMapActivity"
android:label="@string/basic_map" />
<activity
android:name=".CameraDemoActivity"
android:label="@string/camera_demo" />
<activity
android:name=".EventsDemoActivity"
android:label="@string/events_demo" />
<activity
android:name=".GroundOverlayDemoActivity"
android:label="@string/groundoverlay_demo" />
<activity
android:name=".LayersDemoActivity"
android:label="@string/layers_demo" />
<activity
android:name=".LocationSourceDemoActivity"
android:label="@string/locationsource_demo" />
<activity
android:name=".MarkerDemoActivity"
android:label="@string/marker_demo" />
<activity
android:name=".OptionsDemoActivity"
android:label="@string/options_demo" />
<activity
android:name=".PolygonDemoActivity"
android:label="@string/polygon_demo" />
<activity
android:name=".PolylineDemoActivity"
android:label="@string/polyline_demo" />
<activity
android:name=".ProgrammaticDemoActivity"
android:label="@string/programmatic_demo" />
<activity
android:name=".TileOverlayDemoActivity"
android:label="@string/tile_overlay_demo" />
<activity
android:name=".UiSettingsDemoActivity"
android:label="@string/uisettings_demo" />
<activity
android:name=".RawMapViewDemoActivity"
android:label="@string/raw_mapview_demo" />
<activity
android:name=".RetainMapActivity"
android:label="@string/retain_map" />
<activity
android:name=".MultiMapDemoActivity"
android:label="@string/multi_map_demo" />
</application>
</manifest>
Вот несколько скриншотов моего проекта/пути сборки.