android – 我的logcat中的错误是什么?

我现在几乎完成了我的游戏,但今天我遇到了一个真正令人讨厌的问题.当我开始游戏并等待几分钟时,程序会自动关闭.而且我没有说明它.

这是我的logcat显示内容

01-22 16:20:31.232: DEBUG/szipinf(333): Initializing inflate state
01-22 16:20:31.563: DEBUG/PhoneWindow(333): Couldn't save which view has focus because the focused view com.JDLApps.Snake.FrameWork.AndroidFastRenderView@4050f950 has no id.
01-22 16:20:36.362: WARN/ActivityManager(73): Activity pause timeout for HistoryRecord{406532f8 com.JDL.Apps.Snake/.SnakeGame}
01-22 16:20:43.682: INFO/ActivityManager(73): Start proc com.android.launcher for activity com.android.launcher/com.android.launcher2.Launcher: pid=358 uid=10026 gids={}
01-22 16:21:20.393: ERROR/Inputdispatcher(73): channel '406762c0 com.JDL.Apps.Snake/com.JDL.Apps.Snake.SnakeGame (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
01-22 16:21:20.402: ERROR/Inputdispatcher(73): channel '406762c0 com.JDL.Apps.Snake/com.JDL.Apps.Snake.SnakeGame (server)' ~ Channel is unrecoverably broken and will be disposed!
01-22 16:21:21.092: INFO/WindowManager(73): WIN DEATH: Window{406762c0 com.JDL.Apps.Snake/com.JDL.Apps.Snake.SnakeGame paused=false}
01-22 16:21:21.142: WARN/ActivityManager(73): Timeout of broadcast broadcastRecord{40728640 android.intent.action.TIME_TICK} - receiver=android.app.LoadedApk$Receiverdispatcher$InnerReceiver@406300f8,started 56630ms ago
01-22 16:21:21.142: WARN/ActivityManager(73): Receiver during timeout: broadcastFilter{4062f930 ReceiverList{4062f8b8 73 system/1000 local:406300f8}}
01-22 16:21:21.172: INFO/ActivityManager(73): Process com.JDL.Apps.Snake (pid 333) has died.
01-22 16:21:21.362: INFO/WindowManager(73): WIN DEATH: Window{4072b188 SurfaceView paused=false}
01-22 16:21:21.443: INFO/ActivityManager(73): Low Memory: No more background processes.

我遗憾的是没有代码可以分享,因为我不知道程序崩溃了.

编辑:绘图代码

@Override
public void screen(float deltaTime) {
    Graphics g = app.getGraphics();

    g.drawpixmap(Assets.background,0);

    g.drawpixmap(Assets.facebook,750,20);

    g.drawText("SNAKE",10,150,Color.BLACK,AndroidGraphics.LEFT,null,0);
    g.drawText("START",g.getWidth() / 2,g.getHeight() - 20,120,AndroidGraphics.CENTER,startRec,0);
    g.drawText("HIGHscore",20,275,50,highRec,0);
    g.drawText("MORE APPS",g.getWidth() - 20,AndroidGraphics.RIGHT,moreRec,0);
    if (Settings.soundEnabled)
        g.drawpixmap(Assets.buttons,new Rect(0,100,100),380,480));
    else
        g.drawpixmap(Assets.buttons,new Rect(100,200,new Rect(
                0,480));
}

drawText方法

@Override
public void drawText(String text,int x,int y,int color,int size,int position,Rect bounds,int rotation) {
    if (position == LEFT)
        paint.setTextAlign(Paint.Align.LEFT);
    else if (position == CENTER)
        paint.setTextAlign(Paint.Align.CENTER);
    else if (position == RIGHT)
        paint.setTextAlign(Paint.Align.RIGHT);
    else
        return;
    paint.setColor(color);
    Typeface typeface = Typeface.createFromAsset(assets,"typewrite.TTF");
    paint.setTypeface(typeface);
    paint.setTextSize(size);
    if (bounds != null) {
        Rect rec = new Rect();
        paint.getTextBounds(text,text.length(),rec);
        bounds.bottom = y;
        bounds.top = y - rec.height();
        if (position == CENTER) {
            bounds.left = x - rec.width() / 2;
            bounds.right = x + rec.width() / 2;
        } else if (position == RIGHT) {
            bounds.left = x - rec.width();
            bounds.right = x;
        } else if (position == LEFT) {
            bounds.left = x;
            bounds.right = x + rec.width();
        } else
            return;
    }
    canvas.save();
    canvas.rotate(rotation,x,y);
    canvas.drawText(text,y,paint);
    canvas.restore();
}

解决方法

你某处有内存泄漏.有关可用于跟踪它的工具,请参阅开发人员文档中的 this blog post.另请参阅 this blog post获取编程提示,以避免在Android应用程序中泄漏内存.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...