使用Google API的Android应用可在模拟器上运行,但不能在手机上运行

时间:2012-05-18 09:11:41

标签: android google-maps google-api

我有一个使用Google API的Android应用,在此地图上显示地图和一些标记。 当我在模拟器上运行应用程序时,该应用程序按预期工作,但在实际的Andorid手机上下载时,它会崩溃。

手机在Android 2.3.3和Google API 15版上运行。 我已将此行放在AndroidManifest.xml文件中:

<uses-sdk android:minSdkVersion="7" />

我还使用发布密钥库签署了Google API密钥,并确保在自行签署应用程序时使用了相同的密钥库。

如上所述,当在模拟器上运行时,应用程序运行正常,但是当应用程序启动时(安装后)我会收到此错误:

MainActivity  couldn't get connection factory client

然后有一堆这种类型的exeptions / warnings:

System.err    IOExeption processing: 26
System.err    java.io.IOException: Server returned: 3

我是Android编程的新手,所以我很感激能解决这个问题的任何帮助。

2 个答案:

答案 0 :(得分:0)

首先检查是否在AndroidManifest.xml中设置了适当的权限。 检查您是否提供了正确的Google地图密钥。创建密钥http://www.pocketvnc.com/blog/?page_id=511 还尝试生成新的MAP密钥并使用它而不是使用旧密钥。

答案 1 :(得分:-1)

要在真实硬件上进行测试,您需要使用与调试密钥不同的密钥。发布帖子后,您正在使用调试密钥库。

https://developers.google.com/maps/documentation/android-api/v1/?csw=1#getfingerprint

在谷歌上阅读该段落。

将应用程序导出为带有与google api相同的密钥(而不是调试密钥)的签名应用程序非常重要。

用于创建段落的有效读取:

http://developer.android.com/guide/publishing/app-signing.html#releasemode

然后使用相同的密钥获取google maps api密钥。

获得应用程序的密钥后,您可以通过在项目上单击鼠标右键选择Android Tools,然后导出为已签名的应用程序包并按照向导导出已签名的应用程序(可能您可以创建一个新的使用该向导的密钥)。

希望有所帮助。