我正在尝试在(姜饼 2.3.5)手机上构建官方的android google map api v2示例。我添加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.jk',引用自方法maps.y.ae.a
VFY:无法解析Lmaps/y/ae 中的新实例3571 (Lmaps/j/k;);
我怀疑我在 eclipse 3.8 中的项目结构有些混乱。
我尝试了以下事情(即使是最愚蠢的)但无济于事。
1. api密钥无效?
我使用 keytool 生成了一个“debug.keystore”并更新了 eclipse 首选项(Android/Build/Keystore)。当然,我注册了新的密钥库/SHA1 并获得了我在 AndroidManifest 文件中使用的新 api 密钥
2. 错误的项目目标?
我尝试使用以下目标构建我的两个项目:
- 安卓 4.2.1
- 谷歌 API 4.2.1
3. 添加 google-play-services_lib 作为项目依赖
我尝试将 google-play-services_lib 添加为项目依赖项,并在演示构建路径中添加为 android 库。并勾选匹配的导出复选框。
4.在手机上测试google maps api v2
我下载了trulia房地产应用,据说在手机上使用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>
这是我的项目结构/构建路径的一些屏幕截图。