-4
開始時にすべてのアイテムを読み込み、OutOfMemoryExceptionを引き起こす200以上の画像をトリガするRecyclerViewに関する問題が発生しました。Samsung Galaxy S4は、起動時にRecyclerViewのすべてのアイテムを読み込みます。
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mInflater.inflate(R.layout.items, parent, false);
Holder holder = new Holder(view);
return holder;
}
私はRecyclerView.ViewHolderでアダプタにアイテムを設定する通常の方法を使用しています。サムスンギャラクシーS4に遭遇
:GT-I9506 - 他のAndroidバージョン5.0.1
誰もがこの問題を発見しましたか?他のデバイスでも遭遇しました。
編集
例外:
09-20 07:35:59.666 25016-25889/smartapp E/art: Throwing OutOfMemoryError "Failed to allocate a 172 byte allocation with 8 free bytes and 8B until OOM" (recursive case)
09-20 07:35:59.686 25016-25889/smartapp E/art: "Picasso-/image-url” prio=5 tid=45 Runnable
09-20 07:35:59.686 25016-25889/smartapp E/art: | group="main" sCount=0 dsCount=0 obj=0x133ad0e0 self=0xad5df000
09-20 07:35:59.686 25016-25889/smartapp E/art: | sysTid=25889 nice=10 cgrp=apps/bg_non_interactive sched=0/0 handle=0xad52e300
09-20 07:35:59.686 25016-25889/smartapp E/art: | state=R schedstat=(906109587 479948169 1066) utm=73 stm=17 core=1 HZ=100
09-20 07:35:59.686 25016-25889/smartapp E/art: | stack=0x92c56000-0x92c58000 stackSize=1036KB
09-20 07:35:59.686 25016-25889/smartapp E/art: | held mutexes= "mutator lock"(shared held)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:163)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.io.BufferedInputStream.read(BufferedInputStream.java:295)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.MarkableInputStream.read(MarkableInputStream.java:138)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.Utils.isWebPFile(Utils.java:324)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.BitmapHunter.decodeStream(BitmapHunter.java:122)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:217)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-20 07:35:59.686 25016-25889/smartapp E/art: at java.lang.Thread.run(Thread.java:818)
09-20 07:35:59.686 25016-25889/smartapp E/art: at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)
09-20 07:35:58.746 25016-25016/smartapp D/Picasso: Main created [R373] Request{https://image-url}
09-20 07:35:58.746 25016-25016/smartapp D/Picasso: Main created [R374] Request{https://image-url}
09-20 07:35:58.746 25016-25216/smartapp D/Picasso: Dispatcher enqueued [R373]+1ms
09-20 07:35:58.746 25016-25216/smartapp D/Picasso: Dispatcher enqueued [R374]+1ms
09-20 07:35:58.746 25016-25016/smartapp D/Picasso: Main created [R375] Request{https://image-url}
09-20 07:35:58.786 25016-25889/smartapp I/art: Clamp target GC heap from 143MB to 128MB
09-20 07:35:58.786 25016-25889/smartapp I/art: Alloc partial concurrent mark sweep GC freed 622(21KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 127MB/128MB, paused 891us total 54.100ms
09-20 07:35:58.846 25016-25889/smartapp I/art: Clamp target GC heap from 143MB to 128MB
09-20 07:35:58.846 25016-25889/smartapp I/art: Alloc concurrent mark sweep GC freed 17(704B) AllocSpace objects, 0(0B) LOS objects, 0% free, 127MB/128MB, paused 826us total 54.652ms
09-20 07:35:58.846 25016-25889/smartapp I/art: Forcing collection of SoftReferences for 2MB allocation
09-20 07:35:58.846 25016-25036/smartapp I/art: WaitForGcToComplete blocked for 120.065ms for cause Background
09-20 07:35:58.846 25016-25891/smartapp I/art: WaitForGcToComplete blocked for 132.562ms for cause Alloc
あなたは完全な例外を投稿できます – Redman
これは起こり得ません。それらのアイテムだけが一度に見ることができるリサイクルビューにロードされていますが、リサイクルビューの10個のアイテムがあり、使用しているイメージが重いイメージまたは非常に高解像度のイメージであると仮定してもよい場合があります –
はい、知っている...それは通常の動作でなければならない...しかし、何とかこれはGalaxy S4携帯電話では起こっていないが、S6デバイスで試してみると、すべてが意図どおりに機能する。 – Henric