如何在Xamarin.Forms PCL项目中配置地图?

5

我已经使用Xamarin.Form PCL创建了一个项目。

我已经添加了......

Xamarin.Forms.Maps和其他库以及NuGet Package,根据需要在所有平台(Android、iOS、Windows Phone)上添加。

我已经在所有平台上提供了所有的权限和配置。

我已经成功地在Windows Phone上显示了地图并运行了程序,但是在Android上出现了错误。

错误信息如下:

严重 代码 描述 项目 文件 行 列 错误 java.lang.OutOfMemoryError 考虑增加 $(JavaMaximumHeapSize)的值。在执行以下命令时,Java耗尽了内存: 'java.exe -jar"C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.2\lib\dx.jar" --no-strict --dex --output=obj\Debug\android\bin obj\Debug\android\bin\classes "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v6.0\mono.android.jar" D:\Project\SimplyFood\SimplyFood\SimplyFood.Droid\obj\Debug__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.Design\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v4\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v4\23.0.1.3\embedded\libs\internal_impl-23.0.1.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v7.AppCompat\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v7.CardView\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v7.MediaRouter\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v7.MediaRouter\23.0.1.3\embedded\libs\internal_impl-23.0.1.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\Android.Support.v7.RecyclerView\23.0.1.3\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Ads\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Analytics\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.AppIndexing\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.AppInvite\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.AppState\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Base\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Cast\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Drive\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Fitness\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Games\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Gcm\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Identity\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Location\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Maps\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Nearby\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Panorama\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices.Plus\26.0.0\embedded\classes.jar" "C:\Users\PBDEV\AppData\Local\Xamarin\GooglePlayServices
在更新了所有Nuget包之后,我遇到了以下错误...
解压失败。请下载 https://dl-ssl.google.com/android/repository/google_m2repository_r15.zip 并将其提取到D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ content目录下。TestApp.Droid
解压失败。请下载 https://dl-ssl.google.com/android/repository/google_m2repository_r15.zip 并将其提取到D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ content 目录下。
错误原因:D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ 742021DEBBD30AFFB5B67FB39AB43D94.zip不是有效的zip文件。TestApp.Droid
错误原因:D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ 742021DEBBD30AFFB5B67FB39AB43D94.zip不是有效的zip文件。TestApp.Droid
请安装SDK安装程序中提供的“Google Play服务”软件包。Java库文件D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ embedded \ classes.jar不存在。TestApp.Droid
请安装SDK安装程序中提供的“Google Play服务”软件包。Android资源目录D:\ Project \ TestApp \ packages \ Xamarin.GooglePlayServices.22.0.0.0 \ lib \ MonoAndroid41 \ 22.0.0 \ embedded /不存在。TestApp.Droid
是否有其他可用的方式在Android、iPhone和Windows Phone上使用Xamarin轻松集成地图?
2个回答

9

如果您使用的是Visual Studio;

右键单击您的Droid项目,转到Android选项选项卡,单击高级并将Java Max Heap Size设置为1G

如果您使用的是Xamarin Studio,则应该类似。

这与所有要加载的Java绑定有关,它会加载过多的内存。通过此设置,您可以增加默认可用的内存。

您可以在此处阅读有关有关Xamarin的相关错误的更多信息; https://bugzilla.xamarin.com/show_bug.cgi?id=8137#c14


1
有两种可能原因。
  1. 您的模拟器内存非常低,可以增加内存。
  2. 您在Android上显示了一些大图片。 Android对图像处理不太好,请确保将它们缩小到正确的大小。
有了新的错误消息后,转到具有问题的目录并删除所有zip文件和内容。 VS或Xamarin会自动重新下载它们。
还要将编译API目标更新为API 23,但最低可保持在15。

我已经更新了所有内容。现在,当我在VS Android模拟器中运行程序时,屏幕上会出现一条消息,显示“此应用程序需要Google Play服务才能运行”。如何在VS Android模拟器中安装Google Play服务?我已经尝试下载外部的Google Play Store.apk,并使用adb命令“adb install googleplayservices.apk”进行安装。安装playservices.apk后,我不断收到屏幕上的弹出消息“很抱歉,Google Play服务已停止运行”。我已经尝试了所有版本的Googleplayservices.apk。 - Shahabuddin Vansiwala
我之前没有遇到过那个特定的消息。但是在VS模拟器上安装http://download.cyanogenmod.org/怎么样? - Adam

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