在Mono for Android中添加Google Maps API v2

7

谷歌地图API v2于12月3日发布,与Android相关。

是否有可能将其添加到Mono for Android中?

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. 打开命令提示符并切换到 monodroid-samples\MapsAndLocationDemo_v2\google-play-services_lib 目录下。

  6. 键入以下两个命令:

    android update project -p .

    ant debug

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

  8. 现在创建一个Google 地图 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/debug.keystore

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

  9. 如果您要部署到真实设备,则完成了,如果您要在模拟器上部署,请继续阅读。

  10. 使用以下设置创建一个新的 AVD: Platform: 4.1.2 CPU: ARM

  • 对于其余参数,请保留默认选项

  • 从真实设备获取vending.apk(com.android.vending.apk)和gms.apk(com.google.android.gms.apk)(有关详细信息,请参见本文末尾)

  • 启动刚刚创建的模拟器,然后打开命令提示符并将其设置为下载APK的文件夹

  • 键入:

    adb -e install vending.apk adb -e install gms.apk

  • 享受!

  • 来源:

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

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


    好的,我忘记在“PATH”变量中链接“tools”和“platform-tools”。而且我也没有安装Apache Ant。 现在一切都正常了。但是它每次都会显示“SupportMapFragment不存在...”。这是什么原因,我该怎么办? - mstuercke
    3
    尝试直接引用dll而不是项目,有时候在从项目链接类型时VS可能找不到。你应该在Google服务库项目的bin文件夹中找到dll。 - Julian Suarez
    哦,项目中没有 DLL。 - mstuercke
    尝试在Visual Studio中构建Google服务项目,如果没有任何错误,它应该会在GoogleServices/bin/Release或GoogleServices/bin/Debug文件夹中生成一个dll。 - Julian Suarez
    1
    使用Google地图真是太麻烦了。我希望在Xamarin中使用Google地图会更容易些。 - Bas

    1

    对于使用Mac的用户,有一个bash脚本可以帮助您构建Google Play服务客户端。它假设您已经设置了环境变量$ANDROID_HOME(即Android SDK的路径)并安装了Apache Ant。


    0

    关于jucas的评论

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

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


    0

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接