Я использую picasso в своем приложении для управления изображениями. Изображения извлекаются с сервера. Несколько изображений довольно большие в 1,5-2 МБ. Изображение загружается & эта часть кажется прекрасной. После того, как мое приложение рухнуло с нехваткой памяти. Но эти изображения извлекаются из res (около 200kb) из 3 изображений. 12-12 12: 50: 17.260: E/AndroidRuntime (32715): FATAL EXCEPTION: main 12-12 12: 50: 17.260: E/AndroidRuntime (32715): java.lang.OutOfMemoryError: (Размер кучи = 49187KB, Выделено = 47999KB) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.graphics.BitmapFactory.nativeDecodeAsset (собственный метод) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.graphics.BitmapFactory.decodeResourceStream (BitmapFactory.java:486) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.graphics.drawable.Drawable.createFromResourceStream (Drawable.java:773) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.content.res.Resources.loadDrawable (Resources.java:2044) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): на android.content.res.Resources.getDrawable (Resources.java:675) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at com.onmobile.rbt.signal.ui.activities.interfaces.ImageClass.bringInfromRight (ImageClass.java:144) 12-12 12:50: 17.260: E/AndroidRuntime (32715): at com.onmobile.rbt.signal.ui.activities.interfaces.ImageClass.access $ 3 (ImageClass.java:133) 12-12 12: 50: 17.260: E/AndroidRuntime (32715)): at com.onmobile.rbt.signal.ui.activities.interfaces.ImageClass $ 2.run (ImageClass.java:74) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): на android.os. Handler.handleCallback (Handler.java:608) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.os.Handler.dispatchMessage (Handler.java:92) 12-12 12:50: 17.260: E/AndroidRuntime (32715): at android.os.Looper.loop (Looper.java:156) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at android.app.ActivityThread.main (переменный ток tivityThread.java:4987) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at java.lang.reflect.Method.invokeNative (собственный метод) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at java.lang.reflect.Method.invoke (Method.java:511) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run (ZygoteInit.java:784) 12-12 12: 50: 17.260: E/AndroidRuntime (32715): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 12-12 12 : 50: 17.260: E/AndroidRuntime (32715): at dalvik.system.NativeStart.main (родной метод)Ошибка памяти Пикассо
ответ
вы должны использовать изображения небольшого размера. посмотрите этот сайт, https://developer.android.com/training/displaying-bitmaps/load-bitmap.html. используемая память не имеет прямого размера файла. речь идет о размерности изображения. когда ОС (почти вся ОС) рисует изображение, сначала оно получает это изображение в виде растрового изображения и помещает его в кучу. bitmap обычно выделяет 4 байта (ARGB) для каждого пикселя. и, битмап имеет ширину * высота пикселей. так что, например, если у вас есть 5000x5000, только с 2-мя цветами, размер файла может быть размером 10k. размер файла слишком низок, потому что известные форматы изображений, такие как jpeg, png, используют алгоритм сжатия. и 2 цвета означает, что это изображение можно очень хорошо сжимать. хотя размер файла слишком низок, он может поддерживать 5000 * 5000 * 4 (ARGB) = 100.000.000 байт, 100 МБ в куче. и если вы загрузите несколько изображений, подобных этому, вы можете легко начать использовать 1 ГБ памяти (если можете) в виде кучи
- 1. Ошибка Пикассо из памяти?
- 2. Библиотека Пикассо - вне памяти
- 3. Пикассо: из памяти
- 4. Ошибка памяти при использовании пикассо с видом ресайклера
- 5. Загрузка много изображений с Пикассо - из памяти
- 6. Пикассо PlaceHolder Изображение: OutOfMemory
- 7. Первый раз ошибка загрузки изображения с Пикассо
- 8. Основные ошибки Пикассо?
- 9. Пикассо с OkHttp?
- 10. Как получить изображения из кэш-памяти в пикассо?
- 11. Можно ли загружать изображения из кэш-памяти в пикассо?
- 12. Из выпуска памяти при использовании Пикассо и Recycler View
- 13. Синхронизировать две цели [Пикассо]
- 14. Очистить кеш Пикассо
- 15. [Java, Пикассо, BuildError, Android]
- 16. Использование палитры с пикассо
- 17. NoClassDefFoundError: java.applet.Applet .... Пикассо
- 18. Как использовать библиотеку Пикассо
- 19. Пикассо, производящее OutOfMemoryError
- 20. Пикассо загрузка изображений
- 21. Как добавить библиотеку Пикассо
- 22. Пикассо и OkHttp
- 23. разборе JsonArray библиотеке Пикассо
- 24. Нитки Пикассо продолжают работать
- 25. Пикассо кэширования диска
- 26. Пикассо исключение кэша
- 27. Ошибка памяти памяти SKSpritekit
- 28. Ошибка памяти createStatement() памяти
- 29. Ошибка памяти памяти AlamoFire
- 30. Ошибка памяти памяти Matlab
, но если я использую picasso, это поможет мне решить эту проблему памяти правильно? – JnJ11
Я предлагаю проверить также их размерность.если их размеры намного превышают размер изображения, который вы используете с ним, вы должны загружать эти изображения как небольшие размеры. существует способ загрузки изображения с меньшим размером в этой ссылке – Adem