Android的OOM
五月 27, 2011
今天玩了一下子WINAMP for Android,很意外地發現了OOM的問題。
過去幾個月,我們也為了android的OOM問題所苦。現在看到WINWAP的OOM,要說是感同身受嗎,還是有更好的形容詞呢?其實這個問題我個人覺得是滿大的問題,在Android各大討論區都有很多的討論。我們也嘗試了各式各樣的方法去解決。可以說是賠了時間與金錢,還好有換來寶貴的經驗。希望Android平台可以在這方面多多加油,讓軟體開發者的日子好過一點,讓我們的日子好過一些。
05-27 11:35:26.820: ERROR/dalvikvm-heap(1073): 1639680-byte external allocation too large for this process.
05-27 11:35:26.870: ERROR/GraphicsJNI(1073): VM won't let us allocate 1639680 bytes
05-27 11:35:26.870: DEBUG/dalvikvm(1073): GC_FOR_MALLOC freed 5K, 51% free 3910K/7943K, external 23874K/25488K, paused 35ms
05-27 11:35:26.870: DEBUG/skia(1073): --- decoder->decode returned false
05-27 11:35:26.870: DEBUG/AndroidRuntime(1073): Shutting down VM
05-27 11:35:26.870: WARN/dalvikvm(1073): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): FATAL EXCEPTION: main
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nullsoft.winamp/com.nullsoft.winamp.TrackBrowserActivity}: android.view.InflateException: Binary XML file line #33: Error inflating class <unknown>
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2832)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.access$1600(ActivityThread.java:117)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.os.Handler.dispatchMessage(Handler.java:99)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.os.Looper.loop(Looper.java:130)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at java.lang.reflect.Method.invokeNative(Native Method)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at java.lang.reflect.Method.invoke(Method.java:507)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at dalvik.system.NativeStart.main(Native Method)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): Caused by: android.view.InflateException: Binary XML file line #33: Error inflating class <unknown>
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:682)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.rInflate(LayoutInflater.java:619)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.Activity.setContentView(Activity.java:1657)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at com.nullsoft.winamp.TrackBrowserActivity.onCreate(TrackBrowserActivity.java:177)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): ... 12 more
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): Caused by: java.lang.reflect.InvocationTargetException
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at java.lang.reflect.Constructor.constructNative(Native Method)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): ... 25 more
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:359)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:385)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:373)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:154)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.content.res.Resources.loadDrawable(Resources.java:1694)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.view.View.<init>(View.java:1951)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.widget.ImageView.<init>(ImageView.java:112)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): at android.widget.ImageView.<init>(ImageView.java:108)
05-27 11:35:26.900: ERROR/AndroidRuntime(1073): ... 28 more
05-27 11:35:26.920: WARN/ActivityManager(98): Force finishing activity com.nullsoft.winamp/.TrackBrowserActivity
05-27 11:35:27.420: WARN/ActivityManager(98): Activity pause timeout for HistoryRecord{4073a420 com.nullsoft.winamp/.TrackBrowserActivity}
尚無迴響