Android Google Maps API not working with debug.keystore
我正在尝试按照此处的 Android 网站上的教程创建 MapView 应用程序。我已经设置好了所有东西,地图显示了,但是有空的瓷砖!
我正在使用的 API 密钥是从位于 "C:\\\\\\\\Users\\\\\\\\Pete\\\\\\\\.android" 的 debug.keystore 生成的,并且所有正确的权限都已设置在清单中。地图库也在清单中,但它仍然不起作用。我尝试创建一个新的调试密钥库并将其放在同一个文件夹中(显然也生成了一个新的 API 密钥),但仍然没有运气。
(30/05/2011) 编辑:
Manifest.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.stringerapps.testing.gps" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <activity android:name=".Home" android:label="@string/app_name"> <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- import the library com.google.android.maps!!! --> <uses-library android:name="com.google.android.maps" /> <!-- permissions --> <uses-permission android:name="android.permission.INTERNET"> </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"> </uses-permission> </application> </manifest> |
layout.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainlayout" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey="api-key-here-omitted"/> </RelativeLayout> |
主页.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | package com.stringerapps.testing.gps; import java.util.List; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.LinearLayout; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; public class Home extends MapActivity { LinearLayout linearLayout; MapView mapView; List<Overlay> mapOverlays; Drawable drawable; MyItemizedOverlay itemizedOverlay; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); mapOverlays = mapView.getOverlays(); drawable = this.getResources().getDrawable(R.drawable.androidmarker); itemizedOverlay = new MyItemizedOverlay(drawable); GeoPoint point = new GeoPoint(19240000, -99120000); OverlayItem overlayitem = new OverlayItem(point,"",""); GeoPoint point2 = new GeoPoint(35410000, 139460000); OverlayItem overlayitem2 = new OverlayItem(point2,"",""); itemizedOverlay.addOverlay(overlayitem); itemizedOverlay.addOverlay(overlayitem2); mapOverlays.add(itemizedOverlay); } @Override protected boolean isRouteDisplayed() { return false; } } |
您的清单文件需要重新洗牌:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.stringerapps.testing.gps" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <!-- permissions --> <uses-permission android:name="android.permission.INTERNET"> </uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"> </uses-permission> <activity android:name=".Home" android:label="@string/app_name"> <intent-filter> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- import the library com.google.android.maps!!! --> <uses-library android:name="com.google.android.maps" /> </application> </manifest> |
试试看,我会查看你的其他文件,看看是否还能找到其他文件。
见:谷歌地图只显示空白图块 android
这里重要的是始终使用正确的指纹(指纹密钥库)。我之前遇到过同样的问题:)。如果您正在调试您的应用程序,请使用此处描述的调试指纹,您将是安全的。然后,如果您决定发布应用程序,那么您将创建自己的指纹供公众使用。