android - ANR in Canvas.native_drawBitmap -
i've been receiving same anr reports recently. anr happens when app tries draw bitmaps (when rendering gridview imageviews elements). i've did lot of debugging , can surely hangs don't depend neither on bitmap, nor on position it's being drawn.
the heap 50% free, images no bigger 400px^2
grid elements doesn't have custom layout - simple imageview.
tested on htc desire (1 ghz cpu), hero, emulators, etc.
anr continues forever it's infinite loop running while drawing bitmap.
what else can cause such hang?
the report follows:
dalvik threads: "main" prio=5 tid=1 native | group="main" scount=1 dscount=0 s=n obj=0x40020ba0 self=0xddd0 | systid=32366 nice=0 sched=0/0 cgrp=unknown handle=-1345025972 @ android.graphics.canvas.native_drawbitmap(native method) @ android.graphics.canvas.drawbitmap(canvas.java:1045) @ android.graphics.drawable.bitmapdrawable.draw(bitmapdrawable.java:323) @ android.widget.imageview.ondraw(imageview.java:860) @ android.view.view.draw(view.java:6740) @ android.view.viewgroup.drawchild(viewgroup.java:1640) @ android.view.viewgroup.dispatchdraw(viewgroup.java:1367) @ android.view.viewgroup.drawchild(viewgroup.java:1638) @ android.view.viewgroup.dispatchdraw(viewgroup.java:1367) @ android.view.view.draw(view.java:6743) @ android.widget.framelayout.draw(framelayout.java:352) @ android.view.viewgroup.drawchild(viewgroup.java:1640) @ android.view.viewgroup.dispatchdraw(viewgroup.java:1367) @ android.view.view.draw(view.java:6743) @ android.widget.framelayout.draw(framelayout.java:352) @ com.android.internal.policy.impl.phonewindow$decorview.draw(phonewindow.java:1847) @ android.view.viewroot.draw(viewroot.java:1407) @ android.view.viewroot.performtraversals(viewroot.java:1163) @ android.view.viewroot.handlemessage(viewroot.java:1727) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:123) @ android.app.activitythread.main(activitythread.java:4627) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:521) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:878) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:636) @ dalvik.system.nativestart.main(native method)
it's hard pinpoint problem without code or @ least small sample. need load images using asynctask. turning on strictmode helpful finding anr errors.
public void oncreate() { if (developer_mode) { strictmode.setthreadpolicy(new strictmode.threadpolicy.builder() .detectdiskreads() .detectdiskwrites() .detectnetwork() // or .detectall() detectable problems .penaltylog() .build()); strictmode.setvmpolicy(new strictmode.vmpolicy.builder() .detectleakedsqlliteobjects() .detectleakedclosableobjects() .penaltylog() .penaltydeath() .build()); } super.oncreate(); }
make sure remove strictmode before release. cause verifyerror on devices before api level 9. it's nice feature use during development. cause app crash gracefully when ever might block ui thread.
Comments
Post a Comment