【问题标题】:Prevent Android app from crashing while reading a file that is too large防止Android应用程序在读取过大文件时崩溃
【发布时间】:2017-11-28 11:07:47
【问题描述】:

在我正在制作的 Xamarin Android 应用程序中,我有一个处理文件的服务。 但是当它读取一个占用太多内存的文件时,它会崩溃应用程序,没有任何例外。

有没有办法优雅地让用户知道这个文件太大了。

我可以做的是事先确定文件的大小,但这取决于设备的内存它可以处理多少,对吧?

欢迎任何帮助或建议:)

【问题讨论】:

  • 使用 Try catch 并注意“java.lang.OutOfMemoryError”异常,当该异常发生时,您可以释放任务以释放内存并向用户显示消息。
  • 这还不够,因为我的应用程序消耗了太多内存。 Android 正在扼杀其他应用程序,最终是我的应用程序。所以没有时间捕捉错误,因为操作系统正在杀死我的应用程序。 :(

标签: android xamarin memory xamarin.android crash


【解决方案1】:

由于我看不到您的代码,所以这里只是一些建议,您可以运行具有更大堆大小的 Xamarin.Android 项目。

你可以参考这个question。正如 JonathanPryor 所说,您可以提供 $(JavaMaximunHeapSize)$(JavaOptions) MSBuild 属性,让 Java 分配足够的内存来完成您的构建。

方法一:

您可以通过手动编辑 .csproj 并添加以下部分来做到这一点:

<PropertyGroup>
    <JavaMaximumHeapSize>1G</JavaMaximumHeapSize>
</PropertyGroup>

方法二:

点击你的项目Properties -> Android Options -> Advanced -> Java Max Heap Size,设置值为“1G”。

【讨论】:

  • 谢谢,我做到了。不幸的是,这没有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2014-05-26
相关资源
最近更新 更多