如何在已签名的Android应用程序上获取地图?

如何在已签名的Android应用程序上获取地图?,android,map,Android,Map,我已经创建了一个地图应用程序。它显示地图时没有对APK进行签名,但当我尝试在设备中签名并稍后安装该APK时,地图不再显示 您需要一个单独的Google Maps API密钥才能发布。您说您没有在APK工作时对其进行签名,但应用程序实际上是由SDK使用调试密钥自动签名的。这可能是一个你有一个有效的谷歌地图API键以及 从以下地址的文档: 在开发和调试时 你的申请,你很可能 在调试中标记应用程序 模式-即SDK构建工具 将自动签署您的 使用调试的应用程序 证明书让您的地图视图 元素正确显示地图数据

我已经创建了一个地图应用程序。它显示地图时没有对APK进行签名,但当我尝试在设备中签名并稍后安装该APK时,地图不再显示

您需要一个单独的Google Maps API密钥才能发布。您说您没有在APK工作时对其进行签名,但应用程序实际上是由SDK使用调试密钥自动签名的。这可能是一个你有一个有效的谷歌地图API键以及

从以下地址的文档:

在开发和调试时 你的申请,你很可能 在调试中标记应用程序 模式-即SDK构建工具 将自动签署您的 使用调试的应用程序 证明书让您的地图视图 元素正确显示地图数据 在此期间,您应获得 注册到的临时映射API密钥 调试证书。要做到这一点,你必须 首先需要获取MD5指纹 调试证书的。当你 准备好发布应用程序了吗 必须注册您的发布证书 使用谷歌地图服务和 获取新的Maps API密钥。你必须 然后在中更改MapView元素 您的应用程序将引用新的 API密钥


您是否在两个地方使用了相同的api密钥?因为每个服务器上的api密钥都必须是唯一的


您应该使用将在签名时生成的releasekey文件生成另一个apiKey。 您将使用以下命令获得新的MD5密钥
keytool-list-keystore c:\Users\Sudheesh\releasekey 其中relesekey是包含签名释放密钥的文件。 通过使用这个MD5密钥,您可以从
在应用程序中使用此apikey

这样做比较好

Select the project in workspace-->rightclick---> click export--->export android apps-->next-->next--->enter keystore file name--->next--->enter key alis--->finish

(请看此)

就像RogerKK所说的,您是如何进行测试/部署的? 如果您最初针对已连接的Android设备调试应用程序,则很可能是使用调试证书SHA-1生成的密钥。如果您试图进行发布构建,则需要一个完全不同的密钥

下面是我运行的过程,但使用调试证书进行签名


感谢所有面临与nirav patel相同问题的朋友

可以使用以下代码查找有符号和无符号哈希键

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try

        {

            PackageInfo info = getPackageManager().getPackageInfo("Your package name here",PackageManager.GET_SIGNATURE);

            for (Signature signature : info.signatures)
            {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } 
        catch (NameNotFoundException e)
        {
            System.out.println("name not found...."+e);
        } catch (NoSuchAlgorithmException e) 
        {
            System.out.println("NoSuchAlgorithmException...."+e);
        }
    }
}

请声乐教练?但说真的,你遵循了什么步骤呢?你的问题是,你很确定你就是那个想唱歌的人。滥发同样的问题是没有用的。如果你能和你的同事交谈,这样你就不会同时问同样的问题,那将是非常感激的……如果这不是问题所在,我还发现了一些可能相关的奇怪行为,如中所述,我使用了这个。beu,即使我无法获取地图。logct bt中没有错误,我们无法看到地图…如果我们使用未签名的apk,那么它工作正常…如果地图分幅未加载,我打赌日志中会有一些原因提示。也许你可以发布相关的日志,让人们看一看。如果您不提供更多信息,我怀疑您的问题是否会得到回答。请为其他服务器创建新的api密钥。您不能在每个应用程序上使用相同的api密钥。