7

适用于 Android 的 Google Maps API v2 于 12 月 3 日发布。

有没有可能将它添加到 Android 的 Mono 中?

4

4 回答 4

10

我尝试了 TheNextman 建议的指南,但无法使其工作,所以几个小时后,我设法使用以下步骤使其工作:

  1. 从Xamarin 的 Github 页面下载最新的示例项目。

  2. 在 MonoDevelop 上打开 monodroid-samples\MapsAndLocationDemo_v2\MapsAndLocationDemo.sln

  3. 打开 Android SDK Manager 并从 Extras 部分下载“Google Play Services”

  4. 复制 \extras\google\google_play_services\libproject\google-play-services_lib 到 monodroid-samples\MapsAndLocationDemo_v2\

  5. 打开命令提示符并 cd 到 monodroid-samples\MapsAndLocationDemo_v2\google-play-services_lib

  6. 键入以下两个命令:

    安卓更新项目-p。

    蚂蚁调试

  7. 现在在 MonoDevelop 上将文件 google-play-services_lib/project.properties 作为链接文件添加到 GooglePlayServices 项目中

  8. 现在创建一个Google Maps API 密钥。不过要记住两件事:

    使用 MonoDroid 时调试密钥库的默认位置是:

    Windows Vista / Windows 7 / Windows 8: C:\Users[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore OSX : /Users/[USERNAME]/.local/share/Xamarin/Mono for Android/调试密钥库

    您可以在清单标记中的 MapsAndLocationDemo/Properties/AndroidManifest.xml 文件中找到包名称。

  9. 如果您要部署到真实设备,那就是全部,如果您要在模拟器上部署,请继续阅读

  10. 使用此设置创建一个新的 AVD: 平台:4.1.2 CPU:ARM 保留其余参数的默认选项

  11. 从真实设备中获取 vending.apk (com.android.vending.apk) 和 gms.apk (com.google.android.gms.apk)(查看本文末尾以获取更多详细信息)

  12. 启动您刚刚创建的模拟器,然后打开命令提示符并 cd 到您下载 APK 的文件夹

  13. 类型:

    adb -e 安装 vending.apk adb -e 安装 gms.apk

  14. 享受!

资料来源:

(1) https://github.com/xamarin/monodroid-samples/tree/master/MapsAndLocationDemo_v2

(2)除非您更新 Google Play 服务(通过 Bazaar),否则此应用程序不会运行 检查 danbrough 的评论。如果可能,从有根设备中提取两个 APK com.android.vending 和 com.google.android.gms 以获取库的更新版本。

于 2013-01-17T22:48:37.620 回答
1

对于那些使用 Mac 的人,有一个 bash 脚本会负责为您构建 Google Play 服务客户端。它确实假定您已设置环境变量$ANDROID_HOME(Android SDK 的路径)并安装了 Apache Ant。

于 2013-03-14T21:42:15.000 回答
0

这是一个很好的指南,可以让这个工作:使用新的谷歌地图和 Mono for Android

于 2012-12-11T14:31:05.647 回答
0

关于jucas评论

尝试直接引用dll而不是项目,有时VS在从项目链接时找不到类型。您应该在 Google Services 库项目的 bin 文件夹中找到该 dll

对我来说,删除对 Mono.Android 的引用然后添加对 GooglePlayServices 的项目引用和对 Mono.Android 的引用会有所帮助。我不知道为什么它有效,但它确实有效。

于 2013-07-11T11:34:50.483 回答