Android项目被克隆,但谷歌地图在新计算机上不起作用



我有一个使用谷歌地图API的Android应用程序项目。我需要把它克隆到另一台电脑上,但在新电脑上似乎不起作用。

错误消息如下所示:E/谷歌地图Android API﹕授权失败。请参阅https://developers.google.com/maps/documentation/android/start了解如何正确设置地图。E/谷歌地图Android API﹕在Google开发者控制台中(https://console.developers.google.com)确保"谷歌地图Android API v2"已启用。确保存在以下Android密钥:API密钥:我的API密钥(在旧计算机上工作)

我已经尝试生成一个新的API密钥,并使用这个,相同的结果。我已经尝试在SDK管理器中启用所有谷歌服务,结果相同。

有什么建议吗?

清单:

<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权限谷歌地图Android API v2,但建议使用。-->

<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>

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

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

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

对于mac,请使用命令:

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

对于窗口使用此:

keytool -list -v -keystore "%USERPROFILE%.androiddebug.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:66:6E:44:5D:75

  1. 为这个新的SHA1获取一个新的API密钥(您以前已经经历过)

转到你的谷歌开发者控制台。使用生成新的API密钥是SHA1代码和您的程序包名称。例如:

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"/>

在所有这些之后,您的地图将显示原样。希望这篇文章能帮助你。干杯

我的建议是不要生成新密钥,而是在现有密钥上添加一个新的限制,在限制中输入相同的项目名称"com.example.firtup.cucumber",然后(从新设备中)提取新的SHA1。然后按save,重新构建并在新电脑上运行您的项目。

相关内容

  • 没有找到相关文章

最新更新