Google api map V2未在设备中显示已签名的apk

时间:2013-07-19 08:07:14

标签: android

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

感谢。

6 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

您需要使用发布密钥对地图进行签名;)您使用debug.keystore

对地图进行了签名

how to get a Google Maps API v2 release key

Google Maps v2 Getting started

我的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)创建一个发布密钥,用于签署您的应用。您需要转到Google Api控制台的SHA1。创建新的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地图中恢复的消息

答案 2 :(得分:1)

我遇到了同样的问题,终于找到了解决方案,请检查您的开发者帐户,它有权生成Api密钥生成按照以下步骤在google play signed 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.

enter image description here

答案 3 :(得分:0)

在Google API控制台中,您是否添加了signed sha1密钥并在Manifest.xml中进行更改?

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

答案 4 :(得分:0)

试试这个

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

Console

2.复制SHA1密钥,然后创建API密钥      使用此。Google APIs Console

3并将API密钥放入ur项目,然后创建APK文件

答案 5 :(得分: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指纹。