如何解决Android设备上查看传呼机内存不够的异常? [英] How to solve Android View Pager Out of memory Exception?

查看:253
本文介绍了如何解决Android设备上查看传呼机内存不够的异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我采用了android 对于无限滚动自动滚动视图寻呼机。我有四个片段作为视图寻呼机元素。在这些前三个包含一个ImageView的和最后一节包含一个ListView。在片段每个图像的大小约260KB的。在运行此页约5分钟后,我得到了内存异常,并由此膨胀例外。

我添加的android:largeHeap =真正的
清单中。我想这两个 FragmentPagerAdapter FragmentStatePagerAdapter 。任何人都可以建议我应该做些什么?有什么,我必须避免?

logcat的:

  02-05 22:24:58.649:D / dalvikvm(2006年):GC_BEFORE_OOM释放12K,免费40067K / 48460K 18%,暂停75ms,总75ms
02-05 22:24:58.649:E / dalvikvm堆(2006年):出于对1030552字节分配内存。
02-05 22:24:58.659:I / dalvikvm(2006):主PRIO = 5 TID = 1 RUNNABLE
02-05 22:24:58.659:I / dalvikvm(2006年):|组=主SCOUNT = 0 dsCount = 0 = OBJ自我0x40c959a0 = 0x4521b010
02-05 22:24:58.659:I / dalvikvm(2006年):| sysTid = 2006 =不错附表0 = 0/0 CGRP = [无CPU-SUBSYS]句柄= 1074267100
02-05 22:24:58.659:I / dalvikvm(2006年):|状态= R = schedstat(66536119633 40132743333 68805)UTM = 6247 = STM核心406 = 0
02-05 22:24:58.659:I / dalvikvm(2006年):在android.graphics.BitmapFactory.nativeDe $ C $检测板(本机方法)
02-05 22:24:58.669:I / dalvikvm(2006年):在android.graphics.BitmapFactory.de codeStream(BitmapFactory.java:502)
02-05 22:24:58.679:I / dalvikvm(2006年):在android.graphics.BitmapFactory.de codeResourceStream(BitmapFactory.java:355)
02-05 22:24:58.679:I / dalvikvm(2006年):在android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
02-05 22:24:58.679:I / dalvikvm(2006年):在android.content.res.Resources.loadDrawable(Resources.java:1965)
02-05 22:24:58.689:I / dalvikvm(2006年):在android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-05 22:24:58.689:I / dalvikvm(2006年):在android.widget.ImageView<&初始化GT;(ImageView.java:120)。
02-05 22:24:58.689:I / dalvikvm(2006年):在android.widget.ImageView<&初始化GT;(ImageView.java:110)。
02-05 22:24:58.689:I / dalvikvm(2006年):在java.lang.reflect.Constructor.constructNative(本机方法)
02-05 22:24:58.689:I / dalvikvm(2006年):在java.lang.reflect.Constructor.newInstance(Constructor.java:417)
02-05 22:24:58.699:I / dalvikvm(2006年):在android.view.LayoutInflater.createView(LayoutInflater.java:587)
02-05 22:24:58.709:I / dalvikvm(2006年):在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
02-05 22:24:58.709:I / dalvikvm(2006年):在android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
02-05 22:24:58.709:I / dalvikvm(2006年):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
02-05 22:24:58.709:I / dalvikvm(2006年):在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-05 22:24:58.709:I / dalvikvm(2006年):在android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-05 22:24:58.709:I / dalvikvm(2006年):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-05 22:24:58.719:I / dalvikvm(2006年):在com.example.test.MFirstFragment.onCreateView(WelcomeFragment1.java:29)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1240)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.view.ViewPager.populate(ViewPager.java:804​​)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:397)
02-05 22:24:58.719:I / dalvikvm(2006年):在cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager.scrollOnce(AutoScrollViewPager.java:169)
02-05 22:24:58.719:I / dalvikvm(2006年):在cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager$MyHandler.handleMessage(AutoScrollViewPager.java:236)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.os.Handler.dispatchMessage(Handler.java:99)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.os.Looper.loop(Looper.java:137)
02-05 22:24:58.719:I / dalvikvm(2006年):在android.app.ActivityThread.main(ActivityThread.java:5041)
02-05 22:24:58.719:I / dalvikvm(2006年):在java.lang.reflect.Method.invokeNative(本机方法)
02-05 22:24:58.719:I / dalvikvm(2006年):在java.lang.reflect.Method.invoke(Method.java:511)
02-05 22:24:58.719:I / dalvikvm(2006年):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
02-05 22:24:58.719:I / dalvikvm(2006年):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-05 22:24:58.719:I / dalvikvm(2006年):在dalvik.system.NativeStart.main(本机方法)
02-05 22:24:58.739:D / Skia的(2006):德--- codeR->德code返回false
02-05 22:24:58.739:D / AndroidRuntime(2006年):关闭VM
02-05 22:24:58.739:W / dalvikvm(2006年):主题ID = 1:螺纹未捕获的异常退出(组= 0x40c94930)
02-05 22:24:59.049:E / AndroidRuntime(2006年):致命异常:主要
02-05 22:24:59.049:E / AndroidRuntime(2006年):android.view.InflateException:二进制XML文件中第10行错误:充气类<&不明GT;
02-05 22:24:59.049:E / AndroidRuntime(2006年):在android.view.LayoutInflater.createView(LayoutInflater.java:613)
02-05 22:24:59.049:E / AndroidRuntime(2006年):在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
02-05 22:24:59.049:E / AndroidRuntime(2006年):在android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)


解决方案

尝试把清单上的应用程序里面的android:largeHeap =真正的

它解决了大部分的内存问题

I am using android auto scroll view pager for infinite scrolling. I have four fragments as view pager elements. Out of these first three contains an Imageview and the final one contains a Listview. Each image in fragment has a size of about 260KB. While running this page about 5 minutes, I am getting out of memory exception and thereby inflate exception.

I added android:largeHeap="true" in manifest. I tried both FragmentPagerAdapter and FragmentStatePagerAdapter. Can anyone suggest what else I should do? Is there anything that I have to avoid?

Logcat :

02-05 22:24:58.649: D/dalvikvm(2006): GC_BEFORE_OOM freed 12K, 18% free 40067K/48460K, paused 75ms, total 75ms
02-05 22:24:58.649: E/dalvikvm-heap(2006): Out of memory on a 1030552-byte allocation.
02-05 22:24:58.659: I/dalvikvm(2006): "main" prio=5 tid=1 RUNNABLE
02-05 22:24:58.659: I/dalvikvm(2006):   | group="main" sCount=0 dsCount=0 obj=0x40c959a0 self=0x4521b010
02-05 22:24:58.659: I/dalvikvm(2006):   | sysTid=2006 nice=0 sched=0/0 cgrp=[no-cpu-subsys] handle=1074267100
02-05 22:24:58.659: I/dalvikvm(2006):   | state=R schedstat=( 66536119633 40132743333 68805 ) utm=6247 stm=406 core=0
02-05 22:24:58.659: I/dalvikvm(2006):   at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
02-05 22:24:58.669: I/dalvikvm(2006):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)
02-05 22:24:58.679: I/dalvikvm(2006):   at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355)
02-05 22:24:58.679: I/dalvikvm(2006):   at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785)
02-05 22:24:58.679: I/dalvikvm(2006):   at android.content.res.Resources.loadDrawable(Resources.java:1965)
02-05 22:24:58.689: I/dalvikvm(2006):   at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-05 22:24:58.689: I/dalvikvm(2006):   at android.widget.ImageView.<init>(ImageView.java:120)
02-05 22:24:58.689: I/dalvikvm(2006):   at android.widget.ImageView.<init>(ImageView.java:110)
02-05 22:24:58.689: I/dalvikvm(2006):   at java.lang.reflect.Constructor.constructNative(Native Method)
02-05 22:24:58.689: I/dalvikvm(2006):   at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
02-05 22:24:58.699: I/dalvikvm(2006):   at android.view.LayoutInflater.createView(LayoutInflater.java:587)
02-05 22:24:58.709: I/dalvikvm(2006):   at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
02-05 22:24:58.709: I/dalvikvm(2006):   at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
02-05 22:24:58.709: I/dalvikvm(2006):   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
02-05 22:24:58.709: I/dalvikvm(2006):   at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-05 22:24:58.709: I/dalvikvm(2006):   at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-05 22:24:58.709: I/dalvikvm(2006):   at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-05 22:24:58.719: I/dalvikvm(2006):   at com.example.test.MFirstFragment.onCreateView(WelcomeFragment1.java:29)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1240)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:612)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:433)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:405)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:397)
02-05 22:24:58.719: I/dalvikvm(2006):   at cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager.scrollOnce(AutoScrollViewPager.java:169)
02-05 22:24:58.719: I/dalvikvm(2006):   at cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager$MyHandler.handleMessage(AutoScrollViewPager.java:236)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.os.Handler.dispatchMessage(Handler.java:99)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.os.Looper.loop(Looper.java:137)
02-05 22:24:58.719: I/dalvikvm(2006):   at android.app.ActivityThread.main(ActivityThread.java:5041)
02-05 22:24:58.719: I/dalvikvm(2006):   at java.lang.reflect.Method.invokeNative(Native Method)
02-05 22:24:58.719: I/dalvikvm(2006):   at java.lang.reflect.Method.invoke(Method.java:511)
02-05 22:24:58.719: I/dalvikvm(2006):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-05 22:24:58.719: I/dalvikvm(2006):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-05 22:24:58.719: I/dalvikvm(2006):   at dalvik.system.NativeStart.main(Native Method)
02-05 22:24:58.739: D/skia(2006): --- decoder->decode returned false
02-05 22:24:58.739: D/AndroidRuntime(2006): Shutting down VM
02-05 22:24:58.739: W/dalvikvm(2006): threadid=1: thread exiting with uncaught exception (group=0x40c94930)
02-05 22:24:59.049: E/AndroidRuntime(2006): FATAL EXCEPTION: main
02-05 22:24:59.049: E/AndroidRuntime(2006): android.view.InflateException: Binary XML file line #10: Error inflating class <unknown>
02-05 22:24:59.049: E/AndroidRuntime(2006):     at android.view.LayoutInflater.createView(LayoutInflater.java:613)
02-05 22:24:59.049: E/AndroidRuntime(2006):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
02-05 22:24:59.049: E/AndroidRuntime(2006):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)

解决方案

Try to put on manifest inside application android:largeHeap="true"

It resolves most of memory problems

这篇关于如何解决Android设备上查看传呼机内存不够的异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆