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

有没有人使用过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

répondre à tous(14)
刘奇

Puis-je recommander la glisse
https://github.com/bumptech/g...

迷茫

Utiliser Glide

黄舟

1. Vérifiez si le système contient du code qui utilise une grande mémoire ou une boucle infinie.
2. Vous pouvez ajouter des paramètres de démarrage JVM pour limiter l'utilisation de la mémoire : -XX:-UseGCOverheadLimit

  1. Vous pouvez ajouter des attributs à la fresque et modifier la taille de l'image

小葫芦

La glisse est également recommandée. Le code est simple et compresse automatiquement les images mises en cache

Dans les systèmes inférieurs à 5.0 (c'est-à-dire API21), Fresco place les images dans une zone mémoire spéciale. Bien entendu, lorsque l'image ne s'affiche pas, la mémoire occupée sera automatiquement libérée. Cela rendra l'application plus fluide et réduira le MOO causé par l'utilisation de la mémoire d'image. C’est écrit dans la fresque du document chinois

Et la dernière en date est la compilation 'com.facebook.fresco:fresco:0.13.0', vous pouvez l'essayer

伊谢尔伦

Tout d’abord, je suis là pour vous soutenir.

Je ne sais pas ce que ces gens pensent de l'utilisation de Glide. Pouvez-vous même me dire pourquoi vous utilisez Glide (même si j'utilise toujours Glide)

Lorsque vous rencontrez un problème, vous devez le résoudre. Changer la bibliothèque est une solution, mais au moins vous devriez essayer et échouer avant de changer.

J'ai une question, pourquoi la fresque arrive-t-elle ? Ne dit-on pas que c'est le plus populaire de l'industrie ?

Laissez-moi vous dire ce que je pense :
Si l'affiche sort vraiment cette bibliothèque du MOO, je pense qu'elle est assez puissante. Vous pourriez aussi bien vérifier le code pour voir où c'est déraisonnable. Si vous pensez avoir raison, vous pouvez aussi bien envoyer un problème à github

迷茫

J'ai déjà rencontré votre problème en utilisant Fresco. À cette époque, je soupçonnais qu'il s'agissait d'un problème avec Fresco lui-même. Plus tard, j'ai découvert qu'il s'agissait d'un problème avec mon propre code. Dans des circonstances normales, Fresco lui-même ne le ferait pas. déclencher le MOO. Il est recommandé de vérifier d'abord votre propre code.

Peter_Zhu

Même glisse

巴扎黑

Il s'agit du processus de compilation oom, pas de l'exécution oom, et n'a rien à voir avec la bibliothèque utilisée.
Le processus de compilation produit un MOO et les paramètres de compilation doivent être ajustés, comme l'a dit @wordplat

android {

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

Votre problème est en fait un MOO généré lors de la compilation du code, et non un problème causé par le framework lui-même, il vous suffit donc d'ajuster la taille de la mémoire du tas JVM.

dexOptions {
    javaMaxHeapSize "4g"
}
刘奇

Parfois, il est pratique de poster du code

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal