【问题标题】:How to resolve java.lang.outofmemoryerror in xamarin forms portable project set as android as starting project如何解决 xamarin 形式的可移植项目中的 java.lang.outofmemoryerror 设置为 android 作为启动项目
【发布时间】:2017-09-07 06:56:18
【问题描述】:

我已经厌倦了在 xamarin android 项目中获取 java lang 的内存异常。我没有找到导致此异常的根本原因。在我的 android 属性中,设置堆大小为“1G”,但仍然遇到同样的问题。当 xamarin ios 项目设置为启动项目时,我没有遇到任何问题。建议以下解决方案有很多帖子 1. 增加堆大小 2.set在 android manifest 文件中大 hepad 大小是正确的,我不喜欢这些解决方案,但遇到了同样的问题。这是我得到的错误。请提出有关如何解决此问题的任何想法。

【问题讨论】:

  • 显示详细信息位中有什么?它是否可能试图为图像分配一堆内存?如果您在 Android 上加载大量图片,这可能是您的根本原因。
  • 我们如何以 xamarin 形式加载大量图像。有没有替代的解决方案。在 ios 中它运行良好,只有在 android 中才会出现此类问题。
  • 好的,所以问题是加载图像。这可能是因为与 iOS 相比,Android 的图像要大得多。您是否为需要支持的每种屏幕尺寸使用了正确的图像尺寸?
  • 我使用的图像高度为 100,宽度为 130 用于 android。这些尺寸适合 android。
  • 请向我们展示异常的“显示详细信息”部分中的内容。

标签: xamarin.android xamarin.forms


【解决方案1】:

就像您在另一个线程中处理 PATH 内容一样,将其添加到 export _JAVA_OPTIONS="-Xmx1g" 中,重新启动 Visual Studio 并查看是否有帮助。

如果您仍然遇到构建失败并出现 OutOfMemoryException 的问题,您可以尝试升级您的 JDK 以使用 x64 而不是 x86。 x64 JDK 比 x86 JDK 更好地处理更大的堆大小。

另一个问题是,你可能安装了两个版本的 JDK,试图卸载一个并保持最新或支持 64 位的版本。

【讨论】:

    【解决方案2】:

    我在构建我的 android 项目时遇到了这个问题,@G.hakim 的建议对我来说非常有效。感谢@G.hakim! 对于那些在 Mac 上使用 Visual Studio 构建的用户,

    • 打开 Droid 文件夹中的 MainApplication.cs 文件
    • public class MainApplication:... 声明之前添加以下行

      [应用程序(HardwareAccelerated = true, LargeHeap = true)]

    就是这样! 如果你的应用是图像重的,你也可以实现 FFImageLoading 包。

    【讨论】:

      【解决方案3】:

      嗯,这很简单,您只需转到当前项目属性下的清单文件即可。 然后打开AndroidManifest.xml 然后在你的应用节点中添加这两行

       android:hardwareAccelerated="true" android:largeHeap="true"
      

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 1970-01-01
        • 2022-12-30
        • 2018-05-30
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        • 2021-11-30
        • 1970-01-01
        相关资源
        最近更新 更多