2013-02-20 109 views
2

我使用eclipse/Java ADT捆绑软件,我试图让谷歌地图API工作。如何/错误声明谷歌播放服务组件

的文档中引用获得谷歌地图运行起来“建立谷歌播放SDK”>“引用Eclipse的库项目”

http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

在该页面的最下方,后设置项目属性,它说,我需要

例如,以“在清单文件中声明库组件”:

<manifest> 
    ... 
    <application> 
    ... 
    <activity android:name="com.example.android.tictactoe.library.GameActivity" /> 
    ... 
    </application> 
</manifest> 

所以在我的Android清单,我想这其中包括:

<activity android:name="com.example.android.MainActivity.library.google-play-services_lib" /> 
    <activity android:name="com.example.android.MainActivity.library.google-play-services" /> 

然而,谷歌扮演的.jar已包含在它的名字破折号服务库,并在eclipse这些虚线显示为错误(我得到的红色squigglies)。

此外,我试图将这个包含在谷歌地图示例项目中,附带谷歌播放SDK下载(在“额外”下),所以我不是100%确定是否必须执行此步骤。

我该如何解决这个问题?

回答

1

https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

这里的快速指南,谷歌地图API V2。我在办公室的项目中使用了它。

Unable instantiate android.gms.maps.MapFragment

如果您有与MapFragment或谷歌Play服务库使用这个计算器线程来解决问题。

如果您在获取SHA1指纹时遇到问题,请按以下步骤操作。

  1. 如果您使用的是Linux,请打开您的DOS命令行或终端。

  2. cd(更改目录)到JDK 7的Java \ jdk1.7.0 \ bin目录。在我的情况下,它是C:\ Program Files \ Java \ jdk1.7.0 \ bin。为了更容易,将该目录添加到系统路径中。

  3. 执行您的java的keytool并使用您的调试密钥库或官方密钥库。 (以图像为例)。

enter image description here

一般语法,keytool.exe的-list -alias androiddebugkey -keystore “[密钥库的目录]” -storepass的android -keypass安卓

复制和粘贴SHA1指纹保留并使用它在api控制台上生成google map api密钥。它应该在API访问上,然后是Google Maps API V2。

您在那里在您的SHA1指纹中追加应用程序包的名称。像这样的东西。

55:87:D6:B4:60:35:AD:CA:C8:86:84:7D:62:D2:5B:3D:18:34:EB:16;com.my.package 

最后,你应该有现在你珍贵的地图API密钥,并按照我发布的快速和疑难解答链接。

enter image description here

一件事JDK7默认情况下会产生SHA1,如果你将要执行上面的命令。如果您使用的是JDK6,则会生成MD5指纹。我认为您需要在命令的末尾添加-v,这样JDK6才会为您提供SHA1。在我的例子中,我有JDK7,所以当我添加 - v它会告诉你不同的指纹。

玩得开心:D

+0

是的,其实在我的日志猫中,我看到很多MapFragment问题。谢谢,我会看看! – LazerSharks 2013-02-21 00:04:59

+0

https://developers.google.com/maps/documentation/android/了解更多关于此的详细文档,这里是您最好的朋友。你将需要你的API密钥。您可以通过使用调试或官方密钥库获取SHA1指纹来获取它。然后用它在你的google api控制台上为你的谷歌地图生成api key。 – 2013-02-21 00:09:31

+0

是啊,现在我在使用SHA1获得api密钥时遇到了最大的麻烦......所有关于这些文档都对我非常困惑。另外,一位doc说我应该能够在eclipse中没有密钥的情况下进行测试,只要我有ADT包并且设置了环境变量/路径,但是它不起作用。 – LazerSharks 2013-02-21 00:14:59

2

在该页面的最下方,设置项目属性后,它说,我需要

对于地图V2为“在清单文件中声明库组件”,有没有这样的你需要担心的组件。这只会在你试图使用的库项目发布的活动,服务或其他组件发布,而没有对它们进行子类化时。

我该如何解决这个问题?

只要删除这两条<activity>行。

+0

嗯......但我仍然需要谷歌地图库引用/包括对吗? – LazerSharks 2013-02-20 23:40:07

+1

@Gnuey:是的,您需要从应用程序项目中引用Play Services库项目。你只需要添加任何''元素。对于它的价值,下面是我自己使用Maps V2的示例项目:https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2/Basic – CommonsWare 2013-02-20 23:43:36

+0

我已经完成了引用,但我的应用程序当页面加载简单的地图时崩溃。你知道解释为什么发生这种情况的潜在问题?我不应该获得SHA1指纹才能在演示中进行测试吗?我还设置了我的JAVA_HOME环境变量,并在我的PATH中包含了keytool和jarsigner。 – LazerSharks 2013-02-20 23:53:16