2

我正在使用 eclipse/Java ADT 包,我正在尝试让谷歌地图 api 工作。

在文档中引用以启动和运行谷歌地图是“设置 Google Play SDK”>“为 Eclipse 引用库项目”

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

在该页面的最底部,设置项目属性后,它说我需要“在清单文件中声明库组件”

例如:

<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" />

但是,google play 服务库 .jar 的名称中包含破折号,在 Eclipse 中,这些破折号显示为错误(我得到了红色的波浪线)。

另外,我正在尝试将其包含在 google play sdk 下载附带的 google maps 示例项目中(在“extras”下),因此我不能 100% 确定是否必须执行此步骤。

我怎样才能解决这个问题?

4

2 回答 2

2

在该页面的最底部,设置项目属性后,它说我需要“在清单文件中声明库组件”

对于 Maps V2,您无需担心此类组件。仅当库项目发布了活动、服务或其他组件时,您才尝试使用这些活动、服务或其他组件,而无需对它们进行子类化。

我怎样才能解决这个问题?

只需删除这两<activity>行。

于 2013-02-20T23:38:57.600 回答
1

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

这是 google maps api v2 的快速指南。我在办公室的项目中使用了它。

无法实例化 android.gms.maps.MapFragment

如果您在使用 MapFragment 或 google play 服务库时遇到问题,请使用此 stackoverflow 线程进行故障排除。

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

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

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

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

在此处输入图像描述

通常的语法是,keytool.exe -list -alias androiddebugkey -keystore "[你的密钥库的目录]" -storepass android -keypass android

复制并粘贴 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 密钥,并按照我发布的快速和故障排除链接进行操作。

在此处输入图像描述

如果您执行上面的命令,JDK7 默认会生成 SHA1。如果您使用的是 JDK6,它会产生 MD5 指纹。我认为您需要在命令末尾添加 -v 以便 JDK6 为您提供 SHA1。在我的例子中,我有 JDK7,所以当我添加 -v 时,它会显示不同的指纹。

玩得开心 :D

于 2013-02-21T00:03:55.347 回答