我在我的应用程序中使用谷歌地图v2。
我创建了一个自定义密钥存储库(发布密钥),并使用相同的密钥存储库从这里创建了SHA1(密钥存储库证书的SHA-1指纹),随后为映射生成了api密钥。现在我使用eclipse使用上面的密钥存储库对apk进行签名,但是映射没有显示在设备上。
注意:使用debug.keystore,映射可以正常工作。问题是当我使用自定义发布密钥库签名apk时。
我确定Google Maps Android API v2服务是ON的。
请让我知道我在执行中哪里出错了。提前谢谢。
清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.mapsdemo"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<permission
android:name="com.test.mapsdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.test.mapsdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyBBhuw2xpWMxTH335vZbYLtUQIyti*****" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".SplashScreen"
android:configChanges="orientation|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SearchActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan" >
</activity>
<activity
android:name=".MapLocationActivity"
android:configChanges="orientation|screenSize"
android:launchMode="singleTask" >
</activity>
<activity android:name=".HelpActivity" >
</activity>
<activity
android:name=".AddressListActivity"
android:configChanges="orientation|screenSize"
android:launchMode="singleTask" >
</activity>
<activity
android:name=".ConfigureUrlActivity"
android:configChanges="orientation|screenSize" >
</activity>
</application>
确保当你尝试发布和签署你的apk时,你使用SHA1在过程结束时显示,在你的google API控制台也使用SHA1,当然,确保包在你的应用程序和你的google API控制台创建API密钥时同名
好运