Android项目已克隆,但Google地图无法在新计算机上运行

时间:2015-03-25 11:25:27

标签: android google-maps google-api maps

我有一个使用Google Maps API的Android应用程序项目。我需要将它克隆到另一台计算机,但它似乎无法在新计算机上运行。

错误消息如下: E / Google Maps Android API:授权失败。有关如何正确设置地图的信息,请参阅https://developers.google.com/maps/documentation/android/start。 E / Google Maps Android API:在Google Developer Console中(https://console.developers.google.com)     确保已启用“Google Maps Android API v2”。     确保存在以下Android Key:     API密钥: MY API KEY (适用于旧计算机)

我已尝试生成新的API密钥并使用此结果。 我尝试在SDK管理器中启用所有Google服务,结果相同。

有什么建议吗?

清单:     

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--

不需要使用ACCESS_COARSE / FINE_LOCATION权限          Google Maps Android API v2,但建议使用。      - &GT;          

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        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=".ExamineRoom"
        android:label="@string/title_activity_examine_room" >
    </activity>
    <activity
        android:name=".checkAvailable"
        android:label="@string/title_activity_check_available" >
    </activity>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps" >
    </activity>
</application>

2 个答案:

答案 0 :(得分:2)

我假设您使用的是默认密钥库。因此,当您将项目克隆到另一台PC时。新PC上的默认密钥库与以前的密钥库不同。您需要做的是生成一个新的API密钥。 Here你可以找到详细的教程。

  1. 获取默认的调试证书指纹。在此之前,您应该知道您的默认密钥库位于何处。

    OS X和Linux:〜/ .android / Windows Vista和Windows 7:C:\ Users \ your_user_name.android \

  2. 对于mac,请使用命令:

    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    

    对于Windows使用此:

    keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
    

    输出应该是这样的:

    Alias name: androiddebugkey
    Creation date: Jan 01, 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: 4aa9b300
    Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
    Certificate fingerprints:
         MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
         SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
         Signature algorithm name: SHA1withRSA
         Version: 3
    

    现在你得到了SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D: 75

    1. 为这个新的SHA1获取一个新的API密钥(之前已经完成了这个)
    2. 转到您的Google Developer Console。使用SHA1代码和包名生成新的API密钥。例如:

      BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample
      

      现在您获得了新的API密钥。在AndroidManifest.xml中更新它并将其放入元数据中:

      <meta-data
              android:name="com.google.android.geo.API_KEY"
              android:value="API_KEY"/>
      

      在完成所有这些之后,你的地图就会像它一样显示出来。希望这篇文章可以帮到你。欢呼声。

答案 1 :(得分:0)

我的建议是不要生成新密钥,而是向现有密钥添加新限制,在限制中输入相同的项目名称'com.example.fruit.cucumber',然后从新设备)。然后按保存并在新PC上重建并运行项目。