Android 为什么当我从play store下载我的应用程序时google地图不显示? 我开发了一个与GooglePlaces相关的小应用程序 当我直接将应用程序从PC运行到手机时,地图显示正常,一切正常,但当我将同一应用程序上传到play store的个人帐户时,当我下载时,地图不显示。 -问题是与SH1指纹有关还是与地图密钥有关
请帮助我的朋友,因为我还没有找到任何解决方案,虽然我输入了正确的关键字在谷歌搜索Android 为什么当我从play store下载我的应用程序时google地图不显示? 我开发了一个与GooglePlaces相关的小应用程序 当我直接将应用程序从PC运行到手机时,地图显示正常,一切正常,但当我将同一应用程序上传到play store的个人帐户时,当我下载时,地图不显示。 -问题是与SH1指纹有关还是与地图密钥有关,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,请帮助我的朋友,因为我还没有找到任何解决方案,虽然我输入了正确的关键字在谷歌搜索 先谢谢你 我的清单文件: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.maps" android:versionCode="1" android:version
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maps"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<permission
android:name="com.example.maps.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.maps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.maps.CurrentLocationMainActivity"
android:label="@string/app_name"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-jbt0" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
您必须使用谷歌地图的ReleaeKey来发布应用程序,否则它将在地图上显示空白页面,因为您使用的是调试键,当您直接从PC调试应用程序时,调试键正在运行。
所以使用释放键
这样做:
C:\Program Files\Java\jdk1.6.0_45\bin>keytool -genkey -v -keystore "C:\Users\cp
01\.android\releasekey.ketstore" -alias release_alias -keyalg RSA -keysize 2048
-validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) wit
a validity of 10,000 days
for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknow
Enter key password for <release_alias>
(RETURN if same as keystore password):
Re-enter new password:
[Storing C:\Users\cpc01\.android\releasekey.ketstore]
C:\Program Files\Java\jdk1.6.0_45\bin>keytool -list -alias release_alias -keyst
re c:\Users\cpc01\.android\releasekey.ketstore
Enter keystore password:
release_alias, Jul 25, 2013, PrivateKeyEntry,
Certificate fingerprint (MD5): 6A:CA:68:3D:E9:9F:B9:15:22:2A:AB:01:30:82:CC:2A
C:\Program Files\Java\jdk1.6.0_45\bin>keytool -list -v -alias release_alias -ke
store c:\Users\cpc01\.android\releasekey.ketstore
Enter keystore password:
Alias name: release_alias
Creation date: Jul 25, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Issuer: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Serial number: 51f0c02c
Valid from: Thu Jul 25 11:35:32 IST 2013 until: Mon Dec 10 11:35:32 IST 2040
Certificate fingerprints:
MD5: 6A:CA:68:3D:E9:9F:B9:15:22:2A:AB:01:30:82:CC:2A
SHA1: 0F:8A:3C:6A:8F:41:CD:B4:F5:12:85:0D:B6:01:D9:30:E6:5D:28:64
Signature algorithm name: SHA1withRSA
Version: 3
C:\ProgramFiles\Java\jdk1.6.0\u 45\bin>keytool-genkey-v-keystore“C:\Users\cp
01\.android\releasekey.ketstore“-alias release\u alias-keyalg RSA-keysize 2048
-有效期10000
输入密钥库密码:
重新输入新密码:
你的名字和姓氏是什么?
[未知]:
您的组织单位名称是什么?
[未知]:
你的组织名称是什么?
[未知]:
你所在的城市或地区叫什么名字?
[未知]:
你所在的州或省叫什么名字?
[未知]:
这个单位的两个字母的国家代码是什么?
[未知]:
CN=未知、OU=未知、O=未知、L=未知、ST=未知、C=未知是否正确?
[否]:是的
生成2048位RSA密钥对和自签名证书(SHA1 WithRSA)
有效期为10000天
for:CN=Unknown,OU=Unknown,O=Unknown,L=Unknown,ST=Unknown,C=Unknow
输入的密钥密码
(如果与密钥库密码相同,则返回):
重新输入新密码:
[存储C:\Users\cpc01\.android\releasekey.ketstore]
C:\ProgramFiles\Java\jdk1.6.0\u 45\bin>keytool-list-alias release\u alias-keyst
re c:\Users\cpc01\.android\releasekey.ketstore
输入密钥库密码:
2013年7月25日发布,PrivateKeyEntry,
证书指纹(MD5):6A:CA:68:3D:E9:9F:B9:15:22:2A:AB:01:30:82:CC:2A
C:\ProgramFiles\Java\jdk1.6.0\u 45\bin>keytool-list-v-alias release\u alias-ke
商店c:\Users\cpc01\.android\releasekey.ketstore
输入密钥库密码:
别名:release\u别名
创建日期:2013年7月25日
条目类型:PrivateKeyEntry
证书链长度:1
证书[1]:
所有者:CN=未知,OU=未知,O=未知,L=未知,ST=未知,C=未知
发卡机构:CN=未知,OU=未知,O=未知,L=未知,ST=未知,C=未知
序列号:51f0c02c
有效期:2013年7月25日星期四11:35:32 IST至:2040年12月10日星期一11:35:32 IST
证书指纹:
MD5:6A:CA:68:3D:E9:9F:B9:15:22:2A:AB:01:30:82:CC:2A
SHA1:0F:8A:3C:6A:8F:41:CD:B4:F5:12:85:0D:B6:01:D9:30:E6:5D:28:64
签名算法名称:SHA1 WithRSA
版本:3
这是制作发布密钥库和生成SHA1 fingreprint的完整过程,现在将此SHA1代码添加到Google API控制台上的注册应用程序
如果发现有用,接受并投票回答,谢谢。*当我们上传一个apk到游戏商店时,我们应该要求签署apk,在签署apk后,sha1指纹将发生变化,在google map v2中,我们需要一个从google控制台获取的密钥,我们需要sha1指纹,所以你应该通过新的sha1指纹再次创建google map密钥。通过以下过程获取新的sha1
1.签署了apk
2.再次进行相同的过程,您将看到新的sha1
3.现在创建一个新键并粘贴到项目中
4.不要再签名了
5.最后上传
见下文我上传所有的图片在续集看到新的sga1*
您是否使用发布密钥库创建了API密钥?它是从Google API控制台还是其他地方提供的?