首页 > 移动平台 > 详细

Android开发 处理内存申请失败的报错(Failed to allocate a 38189038 byte allocation with 16777216 free bytes and 20MB until OOM)

时间:2019-07-11 13:39:39      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:true   until   too   处理   back   color   pmap   rtl   all   

问题原因

  当你在操作图片或者其他大量文件数据时会出现:Failed to allocate a 38189038 byte allocation with 16777216 free bytes and 20MB until OOM 报错.

为什么会出现这个报错?原因很简单.因为一个app的内存只有64MB,而你在操作需要更多内存的文件.这个时候app无法申请到内存就会报这个错误.

解决办法

1.在清单文件中添加 android:largeHeap="true" 属性,将APP的内存从64MB拓展成128MB

<application
        android:name=".app.App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="demo"
        android:networkSecurityConfig="@xml/network_security_config"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:largeHeap="true"
        tools:replace="android:label">

2.尽量减少使用图片图标,用矢量图代替图标图片

3.尽快的释放一些不需要的使用的内存占用

4.保证app没有内存泄漏

Android开发 处理内存申请失败的报错(Failed to allocate a 38189038 byte allocation with 16777216 free bytes and 20MB until OOM)

标签:true   until   too   处理   back   color   pmap   rtl   all   

原文:https://www.cnblogs.com/guanxinjing/p/11169137.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号