虽然使谷歌地图标志APK(无法加载地图无法联系谷歌的服务器),这个错误计提坏账 [英] While Make sign APK of Google map (Failed to load map Could not contact Google servers) this error accured
问题描述
在我的应用程序将实现谷歌地图为例
不过:</ P>
- 当我直接运行应用程序的地图将完美运行
- 虽然我可以让标志APK(使密钥存储文件和相关的密钥存储的.apk),那么地图将无法正常工作
对于这个问题,我尝试过这么多的想法像
- 创建一个又一个和我的应用程序的另一个API KEY与包装
- 在Android的清单文件将额外的许可(最新清单的权限在下面给出)
有人能帮助?
&LT; RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
工具:上下文=CountryRequirement。&GT;
&LT;片段
机器人:ID =@ + ID /图
机器人:layout_width =match_parent
机器人:layout_height =match_parent
类=com.google.android.gms.maps.MapFragment/&GT;
&LT; / RelativeLayout的&GT;
我的XML布局包含此
我给这需要在谷歌地图例子中,所有的权限
我的清单文件:
&LT; XML版本=1.0编码=UTF-8&GT?;
&LT;舱单的xmlns:机器人=http://schemas.android.com/apk/res/android
包=org.Infoware.GuideBook3
安卓版code =1
机器人:VERSIONNAME =1.0&GT;
&LT;用途-SDK
安卓的minSdkVersion =8
机器人:targetSdkVersion =14/&GT;
&LT;许可
机器人:名称=org.Infoware.GuideBook3.permission.MAPS_RECEIVE
安卓的ProtectionLevel =签名/&GT;
&LT;使用-权限的Android:名称=org.Infoware.GuideBook3.permission.MAPS_RECEIVE/&GT;
&LT;使用-权限的Android:名称=android.permission.INTERNET对/&GT;
&LT;使用-权限的Android:名称=android.permission.WRITE_EXTERNAL_STORAGE/&GT;
&LT;使用-权限的Android:名称=com.google.android.providers.gsf.permission.READ_GSERVICES/&GT;
&LT;使用-权限的Android:名称=android.permission.ACCESS_COARSE_LOCATION/&GT;
&LT;使用-权限的Android:名称=android.permission.ACCESS_FINE_LOCATION/&GT;
&LT;使用-权限的Android:名称=android.permission.ACCESS_NETWORK_STATE/&GT;
&lt;应用
机器人:allowBackup =真
机器人:图标=@可绘制/ icon_72
机器人:标签=@字符串/ APP_NAME
机器人:主题=@风格/ AppTheme&GT;
&LT;使用库机器人:名称=com.google.android.maps/&GT;
&LT;活动
机器人:名称=org.Infoware.GuideBook3.GuideBook3
机器人:标签=@字符串/ APP_NAME&GT;
&LT;意向滤光器&gt;
&lt;作用机器人:名称=android.intent.action.MAIN/&GT;
&LT;类机器人:名称=android.intent.category.LAUNCHER/&GT;
&所述; /意图滤光器&gt;
&LT; /活性GT;
&LT;活动机器人:名称=。CountryRequirement&GT;
&LT; /活性GT;
&所述;元数据
机器人:名称=com.google.android.maps.v2.API_KEY
机器人:值=AIzaSyCRZ_GAcbSqWDgghfSJ26HcPmS0kXB6a5s/&GT;
&LT; /用途&gt;
&LT; /舱单&GT;
步骤为使谷歌地图API版本2
1)创建SHA-1的签名密钥。
Eclipse调试密钥签署您的应用程序可以在USERHOME / .android / debug.keystore文件中找到。 如)C:\ Users \用户无pc43.android \ debug.keystore
-----&GT; C:\ Program Files文件\的Java \ jdk1.7.0_01 \斌\ keytool.exe的-v -list -alias androiddebugkey -keystoreC:\用户\信息1234 \ .android \ debug.keystore-storepass
安卓-keypass机器人
例)
C:\ Program Files文件\的Java \ jdk1.7.0_01 \斌&GT; keytool.exe的-v -list -alias androiddebugkey -keystoreC:\用户\零pc43 \ .android \ DEB
ug.keystore-storepass安卓-keypass机器人
别名:androiddebugkey
创建日期:2013年4月4日
条目类型:PrivateKeyEntry
证书链长:1
证书[1]:
业主:CN = Android的调试,O =的Android,C = US
发行人:CN = Android的调试,O =的Android,C = US
编号:4a5b5c6d
有效期从:周四4月4日18时33分13秒北京时间2013至:星期六03月28日18时33分13秒北京时间2043
证书指纹:
MD5:51:CE:5C:07:05:31:98:6A:D5:7C:24:B1:B3:EC:22:A3
SHA1:B2:68:A7:D6:3A:FC:8F:15:8D:3E:1F:4A:E8:99:CE:8D:F5:28:07:4D
SHA256:5B:5B:FE:7B:92:7F:06:53:1E:28:BB:D0:E5:CB:05:46:B0:81:76:CC:61:87:97:FA: 19:68:B6:C1:08:E8:D6:D9
签名算法名:SHA256withRSA
版本:3
2)与谷歌API控制台注册
-----&GT; HTTPS://$c$c.google.com/apis/console/
----&GT;转到服务
然后激活(ON)的谷歌地图Android的API V2。
3)建立关键应用程序
-----&GT;选择API访问
**您以后需要通过其在该控制台包注册您的应用程序一起
与SHA-1指纹你的签名密钥。为此,选择进入和
点击API访问进入。然后点击创建新的Android按键...项。**
-----&GT;点击创建新的Android KEY
-----&GT;输入您的SHA-1的指纹和应用程序用分号隔开的包。
例如,你可以使用com.example.mymaps包。 (您的SHA-1键;包名称)
4)变更根据下面的链接您的Manifist.xml和JAVA文件
-----&GT;请Reffer此链接
http://www.vogella.com/articles/AndroidGoogleMaps/article.html
5)现在,创建新的密钥存储文件和APK文件为您的项目。
-----&GT; C:\ Program Files文件\的Java \ jdk1.7.0_01 \斌&GT;的keytool -list -alias你的别名-keystore路径有侑应用keystor文件
输入密钥库密码:&lt;您的密钥存储制造&gt pasword;
mapExample,2013年4月18日,PrivateKeyEntry,
证书指纹(SHA1):71:EF:B0:6A:A8:BG:E5:61:E9:23:D0:F2:1E:9D:D0:6F:A4:70:0F:A9
-----&GT;现在你有了新的SHA-1键
-----&GT;有了这个SHA-1键,按照步骤4号
6)现在,您将获得新的谷歌地图API密钥
现在,使用此键来Manifeast.xml文件(如图干NO 4)
&所述;元数据
机器人:名称=com.google.android.maps.v2.API_KEY
机器人:值=新的Google地图API密钥/&GT;
7)现在,创建新的APK文件,你APLICATION与使用现有的密钥库。
In my application I will implement Google Maps example
However:
- When I directly run the application the map will run perfectly
- While I can make sign apk (make Key Store file and related to key Store Apk) then the map will not work
For this problem I am tried so many ideas like
- Create an another and another API KEY of my app related to package
- Put extra permission in Android Manifest File (latest Manifest permission are given below)
Can someone help?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CountryRequirement" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
My XML Layout contain this
I giving all permission that will need in Google Maps example
My manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.Infoware.GuideBook3"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="14" />
<permission
android:name="org.Infoware.GuideBook3.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="org.Infoware.GuideBook3.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/icon_72"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name="org.Infoware.GuideBook3.GuideBook3"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".CountryRequirement" >
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCRZ_GAcbSqWDgghfSJ26HcPmS0kXB6a5s" />
</application>
</manifest>
Step for Making Google Map API Version 2
1)Creating the SHA-1 for your signature key.
The Eclipse debug key for signing your application can be found in the userhome/.android/debug.keystore file. eg) C:\Users\nil pc43.android\debug.keystore
-----> C:\Program Files\Java\jdk1.7.0_01\bin\keytool.exe -v -list -alias androiddebugkey -keystore "C:\Users\Info 1234\.android\debug.keystore" -storepass
android -keypass android
Example)
C:\Program Files\Java\jdk1.7.0_01\bin>keytool.exe -v -list -alias androiddebugkey -keystore "c:\Users\nil pc43\.android\deb
ug.keystore" -storepass android -keypass android
Alias name: androiddebugkey
Creation date: Apr 4, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4a5b5c6d
Valid from: Thu Apr 04 18:33:13 IST 2013 until: Sat Mar 28 18:33:13 IST 2043
Certificate fingerprints:
MD5: 51:CE:5C:07:05:31:98:6A:D5:7C:24:B1:B3:EC:22:A3
SHA1: B2:68:A7:D6:3A:FC:8F:15:8D:3E:1F:4A:E8:99:CE:8D:F5:28:07:4D
SHA256: 5B:5B:FE:7B:92:7F:06:53:1E:28:BB:D0:E5:CB:05:46:B0:81:76:CC:61:87:97:FA:19:68:B6:C1:08:E8:D6:D9
Signature algorithm name: SHA256withRSA
Version: 3
2)Register with the Google APIs Console
-----> https://code.google.com/apis/console/
----> Go to Services
Then Activate(ON) the Google Maps Android API v2.
3)Create key for your application
-----> sELECT API ACCESS
**You need later to register your application via its package in this console together
with the SHA-1 fingerprint of your signature key. For this you select the entry and
click on the API Access entry. Afterwards click on the Create new Android key...entry.**
-----> Click on "Create New Android KEY"
-----> Enter your SHA-1 fingerprint and the package of your application separated by a semicolon.
For example you can use the com.example.mymaps package. (your SHA-1 key;package Name)
4)Change Your Manifist.xml and JAVA File according below link
-----> please Reffer this Link
http://www.vogella.com/articles/AndroidGoogleMaps/article.html
5)Now Create new KeyStore File and APK file For your project.
----->C:\Program Files\Java\jdk1.7.0_01\bin>keytool -list -alias "your alias name" -keystore "path that have keystor file of yor application"
Enter keystore password: <pasword of your keystore>
mapExample, Apr 18, 2013, PrivateKeyEntry,
Certificate fingerprint (SHA1): 71:EF:B0:6A:A8:BG:E5:61:E9:23:D0:F2:1E:9D:D0:6F:A4:70:0F:A9
-----> Now you have new SHA-1 KEY
-----> With this SHA-1 KEY, Follow the Step no 4
6)Now you will get NEW google map API KEY
Now use this key in to Manifeast.xml file (AS SHOWN IN STEM NO 4)
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="NEW GOOGLE MAP API KEY" />
7)Now Create New APK FILE of you APLICATION with the use the existing keystore.
这篇关于虽然使谷歌地图标志APK(无法加载地图无法联系谷歌的服务器),这个错误计提坏账的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!