I cannot build anymore my game (for android). Last time I tried was December the 7-th of 2019 and it worked fine. The build process starts and after a while the following message appears in a window
An error occurred
java.lang.NullPointerException: Unknown
Nothing more! Is there a report in some file? How can I try to solve this?
I think this is the relevant log about the build error in the file editor2.2020-02-25.log:
2020-02-25 16:42:14.921 16893639 [JavaFX Application Thread] ERROR editor.error-reporting - {:line 98}
java.lang.NullPointerException: null
at com.dynamo.bob.util.SpineSceneUtil.loadSkin(SpineSceneUtil.java:736)
at com.dynamo.bob.util.SpineSceneUtil.loadJson(SpineSceneUtil.java:893)
at com.dynamo.bob.pipeline.SpineSceneBuilder.build(SpineSceneBuilder.java:384)
at com.dynamo.bob.Project.runTasks(Project.java:989)
at com.dynamo.bob.Project.doBuild(Project.java:790)
at com.dynamo.bob.Project.build(Project.java:441)
at editor.pipeline.bob$run_commands_BANG_$fn__37203.invoke(bob.clj:86)
at editor.pipeline.bob$run_commands_BANG_.invokeStatic(bob.clj:85)
at editor.pipeline.bob$bob_build_BANG_.invokeStatic(bob.clj:127)
at editor.disk$async_bob_build_BANG_$fn__38225$fn__38228$fn__38229.invoke(disk.clj:205)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Is this the file? If so, it seems something related to spine. I have a (unique) spine model in the game and it runs perfectly fine.
Empty project with only the main.collection with a unique game object with the spine model as unique component. Same error; here is the log:
2020-02-25 19:48:33.602 247470 [JavaFX Application Thread] ERROR editor.error-reporting - {:line 98}
java.lang.NullPointerException: null
at com.dynamo.bob.util.SpineSceneUtil.loadSkin(SpineSceneUtil.java:736)
at com.dynamo.bob.util.SpineSceneUtil.loadJson(SpineSceneUtil.java:893)
at com.dynamo.bob.pipeline.SpineSceneBuilder.build(SpineSceneBuilder.java:384)
at com.dynamo.bob.Project.runTasks(Project.java:989)
at com.dynamo.bob.Project.doBuild(Project.java:790)
at com.dynamo.bob.Project.build(Project.java:441)
at editor.pipeline.bob$run_commands_BANG_$fn__37203.invoke(bob.clj:86)
at editor.pipeline.bob$run_commands_BANG_.invokeStatic(bob.clj:85)
at editor.pipeline.bob$bob_build_BANG_.invokeStatic(bob.clj:127)
at editor.disk$async_bob_build_BANG_$fn__38225$fn__38228$fn__38229.invoke(disk.clj:205)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
java.lang.NullPointerException: null
at com.dynamo.bob.util.SpineSceneUtil.loadSkin(SpineSceneUtil.java:736)
at com.dynamo.bob.util.SpineSceneUtil.loadJson(SpineSceneUtil.java:893)
at com.dynamo.bob.pipeline.SpineSceneBuilder.build(SpineSceneBuilder.java:384)
at com.dynamo.bob.Project.runTasks(Project.java:1007)
at com.dynamo.bob.Project.doBuild(Project.java:808)
at com.dynamo.bob.Project.build(Project.java:443)
at editor.pipeline.bob$run_commands_BANG_$fn__37203.invoke(bob.clj:86)
at editor.pipeline.bob$run_commands_BANG_.invokeStatic(bob.clj:85)
at editor.pipeline.bob$bob_build_BANG_.invokeStatic(bob.clj:127)
at editor.disk$async_bob_build_BANG_$fn__38225$fn__38228$fn__38229.invoke(disk.clj:205)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
if I understand correctly Defold supports only Spine 2.X. However I was able to use Spine 3.8.84 (my latest version) by removing any sprite swaps during animation.
During an animation Spine allows you to change the image of an attachment slot. I think this should the right terminology Spine uses, sorry for being sloppy in my previous answer. In my case, it seems that the build process does not like the changing of the images. At least for project exported with Spine 3.8.84.
Hope this may help, I am not an expert of Spine nor of Defold…
Yes, i make a list with that limitations. And when something broken i add more info to that list=)
But in that case.Looks like there are no new features of spine in animation. Also It worked ok in editor, but bundle not worked.
I am sure that there are no changing image of an attachment slot.Animations not need it.Mb it was added somewhere by mistake.I will check it tomorrow.
Also it can be problem with cyrillic. All images use cyrillic names=)
No i can’t. I can say animator to use 2.x spine version instead of current. (new version contains a lot of bugfixes and improvments for editor,so it is better to use last version with list of limitations.)
The issue with @roccosaienz spine scene was that some animations used slots that weren’t predefined.
This isn’t a feature we’ve supported before, but it seems that our editor happens to allow, probably since the last hot fix to at least allow loading Spine 3.8.x scenes.
Although it’s possible to spend time tracking down that specific discrepancy and maybe find a fix for it, we will instead put our focus in making the Spine support into an extension, allowing us to work on other more urgent things in the future. This work has not yet started, and we have no ETA for this.
Thanks. Not sure what help.
I remove all skins(animation not need it, i add it only because think that bob need skin=)), rename all cyrillic to english, and remove multiple images from one bone.
Looks like problem was with multiple images, and with skin.
Try spine with cyrrilic and it worked. So problem was with multiple images
Move spine to extension is cool.
But the best way to release mesh support(you show it somewhere in forum, any eta?). When we have meshes added official spine runtime, should not be a problem=)
I encountered this error today too. Spine scene was using sprite swapping and I assumed it was allowed… I thought it used to be? It works in engine while building, but not when bundling.
Getting a Spine extension with all official features would be amazing. There are other features like masks that would be incredibly useful if they could be fully supported at least within GUI.