虽然使谷歌地图标志APK(无法加载地图无法联系谷歌的服务器),这个错误计提坏账 [英] While Make sign APK of Google map (Failed to load map Could not contact Google servers) this error accured

查看:273
本文介绍了虽然使谷歌地图标志APK(无法加载地图无法联系谷歌的服务器),这个错误计提坏账的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序将实现谷歌地图为例

不过:<​​/ P>

  1. 当我直接运行应用程序的地图将完美运行
  2. 虽然我可以让标志APK(使密钥存储文件和相关的密钥存储的.apk),那么地图将无法正常工作

对于这个问题,我尝试过这么多的想法像

  1. 创建一个又一个和我的应用程序的另一个API KEY与包装
  2. 在Android的清单文件将额外的许可(最新清单的权限在下面给出)

有人能帮助?

 &LT; RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人: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:机器人=htt​​p://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;使用-权限的Andr​​oid:名称=org.Infoware.GuideBook3.permission.MAPS_RECEIVE/&GT;
    &LT;使用-权限的Andr​​oid:名称=android.permission.INTERNET对/&GT;
    &LT;使用-权限的Andr​​oid:名称=android.permission.WRITE_EXTERNAL_STORAG​​E/&GT;
    &LT;使用-权限的Andr​​oid:名称=com.google.android.providers.gsf.permission.READ_GSERVICES/&GT;
    &LT;使用-权限的Andr​​oid:名称=android.permission.ACCESS_COARSE_LOCATION/&GT;
    &LT;使用-权限的Andr​​oid:名称=android.permission.ACCESS_FINE_LOCATION/&GT;
    &LT;使用-权限的Andr​​oid:名称=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 =的Andr​​oid,C = US
        发行人:CN ​​= Android的调试,O =的Andr​​oid,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访问进入。然后点击创建新的Andr​​oid按键...项。**

-----&GT;点击创建新的Andr​​oid 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:

  1. When I directly run the application the map will run perfectly
  2. 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

  1. Create an another and another API KEY of my app related to package
  2. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆