(ジンジャーブレッド2.3.5)電話で公式のandroid google mapapiv2サンプルを作成しようとしています。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.y.ae.aから参照されたクラス'maps.jk'が見つかりませ
んでしたVFY:Lmaps / y / aeの新しいインスタンス3571(Lmaps / j / k;)を解決できません。
Eclipse3.8のプロジェクト構造が多少混乱しているのではないかと思います。
私は次のことを(最もばかげたものでさえ)無駄に試しました。
1.無効なAPIキー?
keytoolを使用して「debug.keystore」を生成し、Eclipseプリファレンス(Android / Build / Keystore)を更新しました。もちろん、その新しいキーストア/ SHA1を登録し、AndroidManifestファイルで使用した新しいAPIキーを取得します
2.間違ったプロジェクトターゲット?
次のターゲットを使用して2つのプロジェクトを構築しようとしました。
- Android 4.2.1
- Google Api 4.2.1
3.プロジェクトの依存関係としてgoogle-play-services_libを追加する
デモビルドパスにAndroidライブラリとして追加されることに加えて、プロジェクトの依存関係としてgoogle-play-services_libを追加しようとしました。そして、一致するエクスポートチェックボックスをオンにします。
4.電話でグーグルマップAPIv2をテストします
電話が新しいAPIと互換性があることを確認するために、電話でv2apiを使用すると言われているtrulia不動産アプリをダウンロードしました
これがサンプルアプリのマニフェストです
<?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>
これが私のプロジェクト構造/ビルドパスのスクリーンショットです。