我正在使用 LibGdx 框架来创建游戏,并且正在使用 Eclipse 4.4 (Luna)。当我调试我的应用程序时,此方法正在崩溃。
@Override
public void run() {
setName("GLThread " + getId());
if (LOG_THREADS) {
Log.i("GLThread", "starting tid=" + getId());
}
try {
guardedRun();
} catch (InterruptedException e) {
// fall thru and exit normally
} finally {
sGLThreadManager.threadExiting(this);
}
}
在 GLSurfaceView
Android 类中,带有堆栈跟踪:
Thread [GLThread 232] (Suspended (exception NullPointerException))
GLSurfaceView$GLThread.run() line: 1243
我知道 NullPointerException 是什么,我知道某个地方正在传递 null 值,但我想知道的是如何找出哪里?
对于这些类型的问题,我只能假设您需要更多代码,但我不知道应该在哪里查找,如果有人知道我在哪里,我将根据请求发布 Java 类的代码应该看看。
注意:我没有在代码中的任何地方直接使用 GLSurfaceView,我假设它是来自 Libgdx 的库。除非我错过了什么?
更新:详细发现问题。
GLSurfaceView$GLThread.class [in android.opengl [in C:\Users\me\AppData\Local\Android\android-sdk\platforms\android-8\android.jar]] does not exist
最佳答案
解决方案:
从renderer
类调用AtlasRegion
,而没有在assets类
中分配值,因此出现null异常
What is a NullPointerException, and how do I fix it?
将其更改为声明的字段在代码方面为我解决了这个问题。
后端问题的解决方案:
GLSurfaceView$GLThread.class [in android.opengl [in C:\Users\me\AppData\Local\Android\android-sdk\platforms\android-8\android.jar]] does not exist
我从 Google 下载了源代码,并将源代码分配到了 SDK 文件夹中,C:\Users\me\AppData\Local\Android\android-sdk\sources\
,如果您不这样做还没有源文件夹,创建一个,将源文件放在那里,它应该重新加载正在处理的类。 (在本例中为 API 2.2 的 GLSurfaceView.class
)
另一种方法在 Eclipse 4.4 (Luna) 或我相信的任何其他 Eclipse 中,进入您的项目文件夹,右键单击 > properties > java build path
并为 android.java 分配源文件。 jar
在您的依赖库中。
关于java - Libgdx Android - GL 线程(NullPointerException)和丢失类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658827/