2012-02-25 34 views
0

我想调试一些android的eclipse操作足球游戏(我的android设备是戴尔streak垫)。当游戏进入某种匹配状态(比如世界杯比赛)时,eclipse调试器会花费很长时间,但不幸的是,会因为内存异常而异常。调试一些opengles与eclipse的android游戏遇到outofmemoryerror异常

这里是崩溃的调用堆栈:

螺纹[< 1>主](暂停(例外的OutOfMemoryError)) Bitmap.createBitmap(INT,INT,位图$配置,布尔值)线:604 Bitmap.createBitmap(INT,INT,位图$配置)线:584
ActivityThread.createThumbnailBitmap(ActivityThread $ ActivityClientRecord) 线:2442
ActivityThread.performStopActivityInner(ActivityThread $ ActivityClientRecord, ActivityThre线程:2615 ActivityThread.handleStopActivity(IBinder,boolean,int)行:2689 ActivityThread.access $ 800(ActivityThread,IBinder,boolean,int) line:122 BinderProxy(ActivityThread $ H)。 handleMessage(Message)行: 1038 ActivityThread $ H(Handler).dispatchMessage(Message)行:99 Looper.loop()行:132 ActivityThread.main(String [])行:4123
Method.invokeNative(Object,对象[],类,类[],类,int, 布尔值)行:不可用[本机方法] Method.invoke(Object, Object ...)line:491 ZygoteInit $ MethodAndArgsCaller.run()line:841
ZygoteInit.main(String [])line:599 NativeStart.main(String []) 行:不可用[本机方法]

守护程序系统线程[< 2> HeapWorker](暂停(例外的OutOfMemoryError)) BinderInternal $ GcWatcher.finalize()线:48
NativeStart.run()行:不可用[本机方法]

螺纹[< 9> GLThread 10](暂停(例外的OutOfMemoryError)) GLSurfaceView $ GLThread.run()线:1188

并且还有一些与logcat有关的信息:

02-25 15:07:33.931: DEBUG/dalvikvm(17453): threadid=2: still suspended after undo (sc=1 dc=1) 
02-25 15:07:33.931: DEBUG/dalvikvm(17453): GC_BEFORE_OOM freed 0K, 1% free 48888K/49159K, paused 414ms 
02-25 15:07:33.931: ERROR/dalvikvm-heap(17453): Out of memory on a 62116-byte allocation. 
02-25 15:07:33.931: DEBUG/dalvikvm(17453): threadid=9: still suspended after undo (sc=1 dc=1) 
02-25 15:07:33.931: INFO/dalvikvm(17453): "main" prio=5 tid=1 RUNNABLE 
02-25 15:07:33.931: INFO/dalvikvm(17453): | group="main" sCount=0 dsCount=0 obj=0x4014b5c8 self=0x125f8 
02-25 15:07:33.931: INFO/dalvikvm(17453): | sysTid=17453 nice=0 sched=0/0 cgrp=default handle=-1342909336 
02-25 15:07:33.931: INFO/dalvikvm(17453): | schedstat=(0 0 0) utm=249 stm=13 core=1 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.graphics.Bitmap.nativeCreate(Native Method) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.graphics.Bitmap.createBitmap(Bitmap.java:604) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.graphics.Bitmap.createBitmap(Bitmap.java:584) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread.createThumbnailBitmap(ActivityThread.java:2442) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:2615) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread.handleStopActivity(ActivityThread.java:2689) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread.access$800(ActivityThread.java:122) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.os.Looper.loop(Looper.java:132) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at android.app.ActivityThread.main(ActivityThread.java:4123) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at java.lang.reflect.Method.invokeNative(Native Method) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at java.lang.reflect.Method.invoke(Method.java:491) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
02-25 15:07:33.931: INFO/dalvikvm(17453): at dalvik.system.NativeStart.main(Native Method) 

等等。

我试图直接在我的android设备上运行它,并且事情似乎没事,没有崩溃,并且需要可接受的时间来加载&运行。我不知道这是因为虚拟机的堆内存是不够的,所以我试图增加的eclipse.ini VM内存值,之后我还关闭了Eclipse并重新启动它:

--launcher.XXMaxPermSize1024米-XX:MaxPermSize = 1024m -Xms256m -Xmx1024m

但它不起作用。虽然它在设备上运行良好,但我需要调试游戏匹配的断点,步进。没有调试,这将是非常糟糕的。任何人都知道这件事,请帮助我。

注意:我正在调试设备上的opengles游戏(我提到的是dell streak pad),所以模拟器不支持opengles就没有问题。

回答

0

模拟器此时不能做opengl,你只能用真实的设备来测试opengl应用程序。

+0

我正在调试我的戴尔条纹垫。即使如此,我仍然需要eclipse来调试它。没有eclipse调试,它运行良好。 – David 2012-02-25 08:19:29

相关问题