我試圖發送帶附件的電子郵件時出現內存不足異常。Android應用程序內存不足,無法處理圖像
不幸的是,除非增加堆分配的大小,否則我無法診斷/修復問題。據我所知,附件不是特別大,它適用於某些安裝,但不適用於其他安裝。
07-18 15:29:58.912 2471-21587/uk.co.nwhub.nwtapp E/art: Throwing OutOfMemoryError "Failed to allocate a 37440820 byte allocation with 16777120 free bytes and 18MB until OOM"
07-18 15:29:58.922 2471-21587/uk.co.nwhub.nwtapp E/AndroidRuntime: FATAL EXCEPTION: IntentService[EmailService]
Process: uk.co.nwhub.nwtapp, PID: 2471
java.lang.OutOfMemoryError: Failed to allocate a 37440820 byte allocation with 16777120 free bytes and 18MB until OOM
at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:133)
at java.lang.StringBuilder.append(StringBuilder.java:124)
at libcore.net.UriCodec.appendEncoded(UriCodec.java:119)
at libcore.net.UriCodec.encode(UriCodec.java:133)
at java.net.URLEncoder.encode(URLEncoder.java:57)
at com.amazonaws.util.HttpUtils.urlEncode(HttpUtils.java:74)
at com.amazonaws.auth.AbstractAWSSigner.getCanonicalizedQueryString(AbstractAWSSigner.java:173)
at com.amazonaws.auth.AWS3Signer.sign(AWS3Signer.java:112)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:326)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:199)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.invoke(AmazonSimpleEmailServiceClient.java:2630)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.sendRawEmail(AmazonSimpleEmailServiceClient.java:1525)
at uk.co.nwhub.nwtapp.services.EmailService.onHandleIntent(EmailService.java:126)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.os.HandlerThread.run(HandlerThread.java:61)
我正在閱讀的所有幫助/指導有關狀態在處理圖像時,在這種情況下該怎麼做。但是,我不在此活動中使用任何圖像。我能做些什麼來診斷/嘗試解決這個問題?
檢查Android文檔。我要出去肢體,並說你有一個相當大的圖像(https://developer.android.com/training/displaying-bitmaps/load-bitmap.html)。你可以(我可能會推薦)你使用像Glide,Fresco,UIL,PhotoView等圖像加載庫... – mastrgamr
AWS的代碼試圖分配37440820字節=〜36MB。這不會可靠地工作。使用AWS提供的任何支持,向他們展示您的代碼和堆棧跟蹤。 – CommonsWare