我在我的应用程序中使用Google map v2。
我创建了一个自定义密钥库(发布密钥),并使用我从这里创建SHA1的同一个密钥库(SHA-1 fingerprint of keystore certificate),然后生成了映射的api密钥。现在我使用eclipse使用上面的密钥库对apk进行签名,但是地图没有显示在设备上。
注意:使用debug.keystore可以正常运行地图。问题是当我使用自定义版本密钥库签署apk时。
我确保 Google Maps Android API v2 服务已启用。
请告诉我实施方面出错的地方。提前谢谢。
清单文件:
<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>
答案 0 :(得分:0)
确保当您尝试发布并签署您的apk时,您使用在流程结束时显示的SHA1,并在您的google API控制台中使用该SHA1,并且原因是,请确保该包名称相同您的应用以及创建API密钥时在Google API控制台中
祝你好运