java - libgdx Assets 管理器完成加载方法不起作用,抛出空指针异常

标签 java android nullpointerexception libgdx

我创建了一个新的libgdx android项目,顾名思义,使用资产管理器时似乎出现了空指针异常。我在较早的项目中从未遇到过此问题,因此我发现它很奇怪,并且在互联网上找不到其他参考该问题的信息。这些文件位于android资产文件夹中,所以这不是问题。

stacktrace如下:

java.lang.NullPointerException:尝试在空对象引用上调用接口方法'com.badlogic.gdx.files.FileHandle com.badlogic.gdx.Files.internal(java.lang.String)'
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
在android.app.ActivityThread.-wrap11(未知来源:0)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1696)
在android.os.Handler.dispatchMessage(Handler.java:105)
在android.os.Looper.loop(Looper.java:164)
在android.app.ActivityThread.main(ActivityThread.java:6944)
在java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.Zygote $ MethodAndArgsCaller.run(Zygote.java:327)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
引起原因:com.badlogic.gdx.utils.GdxRuntimeException:java.lang.NullPointerException:尝试调用接口方法'com.badlogic.gdx.files.FileHandle com.badlogic.gdx.Files.internal(java.lang.String) '在空对象引用上
在com.badlogic.gdx.assets.AssetManager.handleTaskError(AssetManager.java:636)
在com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:411)
在com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:437)
由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用接口方法'com.badlogic.gdx.files.FileHandle com.badlogic.gdx.Files.internal(java.lang.String)'
在com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver.resolve(InternalFileHandleResolver.java:26)
在com.badlogic.gdx.assets.loaders.AssetLoader.resolve(AssetLoader.java:42)
在com.badlogic.gdx.assets.AssetLoadingTask.resolve(AssetLoadingTask.java:148)
在com.badlogic.gdx.assets.AssetLoadingTask.handleSyncLoader(AssetLoadingTask.java:99)
在com.badlogic.gdx.assets.AssetLoadingTask.update(AssetLoadingTask.java:88)
在com.badlogic.gdx.assets.AssetManager.updateTask(AssetManager.java:561)
在com.badlogic.gdx.assets.AssetManager.update(AssetManager.java:409)
在com.badlogic.gdx.assets.AssetManager.finishLoading(AssetManager.java:437)

我知道代码不是问题,因为我在以前的项目中使用了相同的代码,但未收到此错误,但是我将共享代码以确保完整性。最近的更新是否中断了资产管理器/更改了其工作方式,还是由其他原因引起的?

    assetManager.load("uiskin.atlas", TextureAtlas.class);
    assetManager.finishLoading(); //The error occurs here, I can only assume the same error would 
                                  //occur the next time this is called, because execution stops here.
    assetManager.load("uiskin.json", Skin.class, new SkinParameter("uiskin.atlas"));
    assetManager.finishLoading();
    uiskin = assetManager.get("uiskin.json");

最佳答案

您的代码在libGDX完成初始化之前运行。问题不在于资产管理器,而是未初始化的内部变量。

关于java - libgdx Assets 管理器完成加载方法不起作用,抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61369185/

相关文章:

java - TextView Android 中的对齐问题

java - 打印数组中对象的单个元素。 java

android - 在底部导航 flutter 后面扩展容器

对话框中 FindViewById 处的 Android java.lang.NullPointerException

java - 单元测试 - 相对路径导致测试失败?

Java 反射 : Get concrete type of implemented generic interface

java - FirefoxDriver 无法正确处理点击

java - 根据 ListView 位置隐藏可扩展 ListView 的 groupIndicator

android - Nativescript 在 debug.apk 上构建发布 apk 成功时失败

java - 什么是NullPointerException,我该如何解决?