|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
В приложении осуществляется загрузка в ImageView картинок из папки Assets. Картинки в формате .PNG. При работе приложения возникает ошибка OutOfMemoryError. загрузку картинок делаю так Код: java 1. 2. 3. 4.
с учетом https://developer.android.com/training/displaying-bitmaps/load-bitmap.html лог с ошибкой вот java.lang.OutOfMemoryError at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:492) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:558) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) at android.support.v4.app.FragmentManagerImpl.moveToState at android.support.v4.app.FragmentManagerImpl.moveToState at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) at android.support.v4.app.FragmentManagerImpl.execPendingActions at android.support.v4.app.FragmentManagerImpl.executePendingTransactions at android.support.v4.app.FragmentPagerAdapter.finishUpdate at android.support.v4.view.ViewPager.populate(ViewPager.java:1105) at android.support.v4.view.ViewPager.populate(ViewPager.java:951) at android.support.v4.view.ViewPager$3.run(ViewPager.java:250) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) at dalvik.system.NativeStart.main(Native Method) есть ли еще способы как решить проблему? или возможно дело в том, что на устройстве мало памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 13:37 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
тут http://stackoverflow.com/questions/25719620/how-to-solve-java-lang-outofmemoryerror-trouble-in-android нашел способ, в манифесте проставить android:largeHeap="true", но там же не советуют этого делать. хотя даже добавление android:largeHeap="true" не помогло. Похоже дело действительно в нехватки памяти на устройстве. Можно как-то отловить данную ошибку и закрыть приложение аккуратно без креша ) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 14:01 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
Загрузчик может на ходу их ресамплировать https://developer.android.com/training/displaying-bitmaps/load-bitmap.html Вроде уже обсуждали тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 14:58 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
wadman, в первом посте я же сослался на эту статью. что значит "на ходу"? "обсуждали тут", где? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 15:13 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
nikompчто значит "на ходу"? Не читал, значит? авторTo avoid java.lang.OutOfMemory exceptions, check the dimensions of a bitmap before decoding it, unless you absolutely trust the source to provide you with predictably sized image data that comfortably fits within the available memory. nikomp"обсуждали тут", где? В разделе. Кто-то тут еще большими картинками баловался. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 15:34 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
Вот 18603238 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2016, 15:42 |
|
java.lang.OutOfMemoryError
|
|||
---|---|---|---|
#18+
Перечитал еще раз материал по ссылкам. Внес правки в приложение: 1) Картинки подобрал меньшего размера. Были картинки по несколько метров, память в моем стареньком телефоне забивалась на раз. 2) Сменил FragmentPagerAdapter на FragmentStatePagerAdapter. FragmentPagerAdapter хранит все количество используемых фрагментов в памяти и поэтому подходит, если в приложении небольшое количество страниц. А класс FragmentStatePagerAdapter хранит в памяти только текущую, предыдущую и следующую страницу (при их наличии). За счет этого он экономнее расходует память, но в то же время работает чуть медленнее. После этого приложение работает нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2016, 10:44 |
|
|
start [/forum/topic.php?fid=13&msg=39376951&tid=1331023]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 299ms |
0 / 0 |