3

我正在使用 google map Api V2 显示 MAP 我在通过我的 PC 运行时成功将其显示在设备中,但现在我通过导出签名的 apk 对我的应用程序进行签名并制作为 .keystore 和 .apk,它制作了一个证书,现在我正在使用该 apk 文件并运行应用程序,但地图不显示只是显示白屏,即使我使用 http://developer.android.com/tools/publishing/app-signing.html制作了发布密钥 ,并且我成功执行了所有链接中给出的步骤,但地图也没有显示,请帮忙。

谢谢。

4

6 回答 6

3

您必须使用新创建的密钥库创建新的地图 API 密钥并将其放在 Google Map Api 控制台页面上。使用以下命令:

PATH OF YOUR KEYTOOL FILE/keytool -list -v -keystore YOURKEYSTORENAME

你会得到 SHA-1,保存它。转到 Google api 控制台页面,使用此 SHA-1 创建新的 Android 密钥并将新创建的密钥放入您的应用程序中。它肯定会起作用。

于 2013-10-08T09:53:50.753 回答
2

您需要使用发布密钥签署地图;)您使用 debug.keystore 签署地图

如何获取 Google Maps API v2 发布密钥

谷歌地图 v2 入门

我的public class VentanaMapa extends FragmentActivity 时候private GoogleMap mMap;

status = GooglePlayServicesUtil
            .isGooglePlayServicesAvailable(getBaseContext());
    Intent intentErrorMapa = null;
    switch (status) {
    case ConnectionResult.SUCCESS:
        SupportMapFragment SupportMap = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mMap = SupportMap.getMap();
        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

        mMap.getUiSettings().setZoomControlsEnabled(true);
        mMap.getUiSettings().setCompassEnabled(true);

        new ObtenerEnvio().execute(_empAlbaran, _codAlbaran.toString(),
                _lineaAlbaran.toString());
        mMap.setMyLocationEnabled(true);
        break;

    case ConnectionResult.SERVICE_MISSING:
        Toast.makeText(VentanaMapa.this, R.string.ErrorMapaServiceMissing,
                Toast.LENGTH_LONG).show();
        break;

    case ConnectionResult.SIGN_IN_REQUIRED:
        Toast.makeText(VentanaMapa.this, R.string.ErrorMapaSignRequired,
                Toast.LENGTH_LONG).show();
        break;

    case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
        Toast.makeText(VentanaMapa.this, R.string.ErrorMapaServiceUpdate,
                Toast.LENGTH_LONG).show();
        break;
    case 999:
        Toast.makeText(VentanaMapa.this, R.string.ErrorCargarMapa,
                Toast.LENGTH_LONG).show();
        break;
    }

我的 Map.xml:

`<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=".MainActivity" >

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:layout_above="@+id/ImageButtonAnteriorMapa"
    android:layout_alignParentTop="true" />

</RelativeLayout>

1)创建一个发布密钥,用于签署您的应用程序。SHA1 你需要去 Google Api 控制台。创建新的 Android 密钥,如 SHA1_number;your.package 2) 使用此密钥,您需要将其添加到清单中,例如: <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your_key_for_release" /> 您将代码放在前面</application> 。检查 logcat 以查看您从 Google 地图收到的确切消息

于 2013-07-19T08:09:31.120 回答
1

我遇到了同样的问题,终于找到了解决方案,请检查您的开发者帐户,它有权生成 Api 密钥按照以下步骤在 google play 签名 apk 中显示您的地图

1. Create the Api using Debugging SHA1.
(eg)F0:0F:F0:0F:F0:0F:F0:0F:F0:0F:F0:0F:F0:0F:F0:0F:F0:0F:F0:0F;com.blabla.app
2.Create the Api using Relased SHA1 from appname.keystore.
(eg)F2:83:F2:83:F2:83:F2:83:F2:83:F2:83:F2:83:F2:83:F2:83:F2:83;com.blabla.app
 you have an option to create on this api in single textfield in developerId api console page.

This kind of option are available only in developer account.Try it.Thank you.
Please refer the following Image if u have any doubt.

在此处输入图像描述

于 2014-10-24T19:21:42.707 回答
0

在 Google API 控制台中,您是否添加了您的signedsha1 密钥并在您的Manifest.xml?

因为signedEclipsedebug keystore完全不同的是,当您将项目导出为 Android 应用程序时,您选择了一个密钥库,在单击之前,窗口底部有一个 sha1 键。您必须在 API 控制台中添加此特定密钥。finish

于 2013-07-19T08:12:22.457 回答
0

尝试这个

1.首先在控制台中的eclipse中创建.APK文件,如下图所示

安慰

2.复制 SHA1 密钥,然后 使用它创建 API 密钥。Google API 控制台

3 并将 API 密钥传递到您的项目中,然后创建 APK 文件

于 2013-10-08T09:49:01.270 回答
0

要找出用于发布密钥库的 Android SHA1 指纹,请执行以下步骤:

打开终端 将目录更改为 JDK bin 目录,我的是 jdk1.7.0_05(您可能会有所不同)。

cd C:\Program Files\Java\jdk1.7.0_05\bin

接下来我们必须运行 keytool.exe。使用以下行获取 SHA1 指纹。

keytool -list -v -keystore {keystore_name} -alias {alias_name}

例子:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

它将提示输入密码。输入密码,您将获得SHA1和MD5指纹。

于 2016-05-07T15:33:55.820 回答