Libgdx - 如何在 Eclipse 中调试我的 Libgdx 项目?

Libgdx - How do i Debug my Libgdx project in Eclipse?

由于我目前正在用 Libgdx 消除我的知识不足,在我开始一个项目之前,我觉得我应该知道如何调试特定的 'standard' 运行调试 Android 个应用程序时出现时间错误。这会节省我很多时间来思考为什么我的应用程序在加载游戏时似乎没有 运行。与大多数开源项目一样,文档非常分散,但每个硬币都有两个方面; Libgdx 沐浴在开发的自由中,它缺乏文档。 post 的目的是回答这个非常简单但有益的问题。

How do I debug my Libgdx Project in Eclipse?

对某些人来说答案可能非常简单,但对其他人来说却不是那么重要,但非常必要。我为此使用 Libgdx 1.5.5 和 Eclipse 4.4 (Luna)。

当您在 Eclipse 中并且您的应用程序崩溃时,您会想要跳转到 Debug 透视图。

Window > 打开透视图 > 调试

点击几次后,您应该能够获得有关您发现的错误的一些信息,下次您 运行 它。见下图:

在我的例子中,我故意为一个动画使用了没有帧的旧打包纹理,所以我知道我会得到 NullPointerException。这是一个非常常见的错误,也是一个很好的开始示例。

让我们进一步分解图像:

  1. 在这里您可以分析线程并查看它们在应用程序运行时如何 运行ning。它本质上是线程在整个应用程序中进行的交互的时间线。您可以使用此查找泄漏并更好地发现您的错误发生在哪个线程上,在图像中它显示在 GL 线程上捕获了一个错误。 NullPointerException(如上所述)。

    如果您想更深入地了解 API 的线程方式,请查看 here.

  2. 这是您设置断点的地方,正如您已经从图像中看到的那样,我已经进行了设置。这只是向您展示了您将在哪些区域寻找异常,在这种情况下,您将向 GdxRuntimeException 添加断点,这允许系统在捕获异常时停止调试并显示问题GdxRuntime 家族的例外。

    有关断点的更多信息 here

    3: http://www.vogella.com/tutorials/EclipseDebugging/article.html

    In order to set these up you'll need to click on the button right next to the 2 area of the image it looks almost like J! and when hovered over it'll say "add Java Exception Breakpoint", click on that and then 3 会弹出。

  3. 这是当你添加一个新的Java异常断点时打开的对话框,会有很多选项和一个搜索栏,时间在Gdx进入搜索栏,你'我会找到 GdxRuntimeException,点击它,点击确定。现在您为 'standard' Gdx 运行time 异常设置了一个断点。它将使查找代码中的错误变得容易得多。

  4. Logcat:拼图中找出错误所在的最后线索。这是 Logcat,这将记录来自 Android 设备的任何错误,我通常会过滤错误选项卡并专注于红色。您需要花一点时间了解什么是 'common' 错误以及什么是实际错误。然后你应该能够找出错误是什么。显然,修理东西总是反复试验 [双关语]。

    logcat 告诉我导入 TextureRegion 的 Libgdx 库出了点问题,并将该信息与线程一起使用,我们可以在某处看到纹理区域以空值传递,运气好的话,您将能够直接转到您的资产管理器并对其进行排序。

Note: In the top left corner of the image, you'll notice how you can change perspectives (not sure how updated this in regards to what version of Eclipse has it) but it comes in very handy when you're doing the trial and error.