【Android】解决“java.lang.OutOfMemoryError: Failed to allocate a 8015852 byte allocation with 670144 fre

11-28 09:42:11.459 19178-19178/com.jddw.printer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.jddw.printer, PID: 19178
    java.lang.OutOfMemoryError: Failed to allocate a 8015852 byte allocation with 670144 free bytes and 654KB until OOM
        at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
        at android.graphics.Bitmap.nativeCreate(Native Method)
        at android.graphics.Bitmap.createBitmap(Bitmap.java:859)
        at android.graphics.Bitmap.createBitmap(Bitmap.java:829)
        at android.graphics.Bitmap.createBitmap(Bitmap.java:796)
        at com.jddw.printer.MyPrintAdapter.onLayout(MyPrintAdapter.java:80)
        at android.print.PrintManager$PrintDocumentAdapterDelegate$MyHandler.handleMessage(PrintManager.java:797)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:150)
        at android.app.ActivityThread.main(ActivityThread.java:5546)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682)

解决办法:
在AndroidManifest.xml文件中的application标签中添加如下四行代码就解决问题了

android:allowBackup="true"
android:supportsRtl="true"
android:largeHeap="true"
android:hardwareAccelerated="false"

android:hardwareAccelerated = "true"的时候会牺牲内存来加快图片的加载速度。
android:largeHeap = "false"会限制app应用申请的内存大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值