2013-05-17 10 views
1

我目前正在開發一個使用libgdx(java)的遊戲,它依次使用本機C++(box2d)庫。有時我會在box2d(C++庫)中得到一個斷言。它需要五分鐘到一個小時,直到我找到我的錯誤代碼,看到我的java代碼的堆棧跟蹤足以更快地找到我的錯誤。有沒有辦法打斷Java中的jni C++聲明並至少爲我的java代碼打印堆棧跟蹤?

堆棧例如
- 我的代碼 -
Application.java
Level.java
Enemy.java
- Libgdx -
World.java(與JNI的包裝器)
- Box2D的 -
b2World.cpp
...
b2PolygonShape.cpp

回答

0

您可能想要退房http://www.codeproject.com/Articles/17558/Exception-handling-in-JNI

有一堆代碼,但它必須是一個關於如何使用它的教程。我抓住它快速JNI_ASSERT()。

我用的是標準輸出,只需使用該庫的一小部分,但如果你使用完整的圖書館,它可以折騰消息框,如下所示:

enter image description here