android - fresco库加载图片出现OOM,求使用过的大神解决
ringa_lee
ringa_lee 2017-04-17 17:52:31
0
14
1642

有没有人使用过fresco库加载图片解决OOM问题的?因为我的项目需要大量加载图片,用了fresco库主要就是想解决GC相关OOM问题,但是发现项目在AS中使用fresco库运行在21安卓版本以下还是会出现OOM问题,运行在21及以上的版本不会出现任何问题,gradle一些相关语句如下:
compileSdkVersion 23
buildToolsVersion '23.0.3'
minSdkVersion 15
targetSdkVersion 23
compile 'com.facebook.fresco:fresco:0.9.0+'
报错图片:

ringa_lee
ringa_lee

ringa_lee

membalas semua(14)
刘奇

Bolehkah saya mengesyorkan meluncur
https://github.com/bumptech/g...

迷茫

Gunakan Glide

黄舟

1. Semak sama ada sistem mempunyai kod yang menggunakan memori besar atau gelung tak terhingga.
2. Anda boleh menambah parameter permulaan JVM untuk mengehadkan penggunaan memori: -XX:-UseGCOverheadLimit

  1. Anda boleh menambah atribut pada lukisan dinding dan menukar saiz imej

小葫芦

Glide juga disyorkan. Kod ini mudah dan secara automatik memampatkan imej cache

Dalam sistem di bawah 5.0 (iaitu, API21), Fresco meletakkan imej dalam kawasan memori khas. Sudah tentu, apabila gambar tidak dipaparkan, memori yang diduduki akan dikeluarkan secara automatik. Ini akan menjadikan APP lebih lancar dan mengurangkan OOM yang disebabkan oleh penggunaan memori imej. Ia ditulis dalam dokumen Cina fresko

Dan kini yang terbaru ialah menyusun 'com.facebook.fresco:fresco:0.13.0', anda boleh mencubanya

伊谢尔伦

Pertama sekali, saya di sini untuk menyokong anda.

Saya tidak tahu apa yang mereka fikirkan tentang menggunakan Glide. Bolehkah anda beritahu saya mengapa anda menggunakan Glide (walaupun saya selalu menggunakan glide)

Apabila anda menghadapi masalah, anda harus menyelesaikannya dengan menukar perpustakaan adalah satu cara, tetapi sekurang-kurangnya anda harus mencuba dan gagal sebelum menukar.

Saya ada soalan, kenapa fressco oom? Bukankah dikatakan bahawa ia adalah yang paling popular dalam industri?

Biar saya beritahu anda pendapat saya:
Jika poster itu benar-benar mengeluarkan perpustakaan ini daripada OOM, saya rasa ia agak berkuasa, anda juga boleh menyemak kod itu untuk melihat di mana ia tidak munasabah. Jika anda fikir anda betul, anda juga boleh menghantar isu kepada github

迷茫

Saya pernah menghadapi masalah anda sebelum menggunakan Fresco Pada masa itu, saya mengesyaki bahawa ia adalah masalah dengan Fresco sendiri pencetus OOM Adalah disyorkan untuk menyemak kod anda sendiri terlebih dahulu.

Peter_Zhu

Glide Sama

巴扎黑

Ini ialah proses penyusunan oom, bukan oom masa jalan, dan tiada kaitan dengan perpustakaan yang digunakan.
Proses kompilasi menghasilkan OOM, dan parameter kompilasi perlu dilaraskan, seperti yang dikatakan @wordplat

android {

dexOptions {
    javaMaxHeapSize "4g"
}
}
小葫芦

Masalah anda sebenarnya adalah OOM yang dijana semasa penyusunan kod, bukan masalah yang disebabkan oleh rangka kerja itu sendiri, jadi anda hanya perlu melaraskan saiz memori timbunan JVM.

dexOptions {
    javaMaxHeapSize "4g"
}
刘奇

Kadang-kadang lebih mudah untuk menghantar kod

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan