stephengold / jme-vehicles

A tech demo and library for simulating vehicles in jMonkeyEngine
BSD 3-Clause "New" or "Revised" License
17 stars 7 forks source link

IllegalArgumentException: nativeId must not be zero (while loading mesh shapes on Windows) #3

Closed stephengold closed 3 years ago

stephengold commented 3 years ago

Probably a Minie issue, but first saw it here...

$ ./jme-vehicles
Jan 05, 2021 8:06:34 PM class com.jme3.export.binary.BinaryImporter readObject(int id)
SEVERE: Exception
java.lang.IllegalArgumentException: nativeId must not be zero.
        at jme3utilities.Validate.nonZero(Validate.java:625)
        at com.jme3.bullet.NativePhysicsObject.setNativeId(NativePhysicsObject.java:173)
        at com.jme3.bullet.collision.shapes.infos.BoundingValueHierarchy.read(BoundingValueHierarchy.java:169)
        at com.jme3.export.binary.BinaryImporter.readObject(BinaryImporter.java:342)
        at com.jme3.export.binary.BinaryInputCapsule.readSavable(BinaryInputCapsule.java:457)
        at com.jme3.bullet.collision.shapes.MeshCollisionShape.read(MeshCollisionShape.java:275)
        at com.jme3.export.binary.BinaryImporter.readObject(BinaryImporter.java:342)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:242)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:125)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:109)
        at com.jme3.export.binary.BinaryLoader.load(BinaryLoader.java:36)
        at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:260)
        at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:374)
        at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:387)
        at com.jayfella.jme.vehicle.examples.worlds.Racetrack.load(Racetrack.java:79)
        at com.jayfella.jme.vehicle.Preloader.run(Preloader.java:51)

Jan 05, 2021 8:06:36 PM class com.jme3.export.binary.BinaryImporter readObject(int id)
SEVERE: Exception
java.lang.IllegalArgumentException: nativeId must not be zero.
        at jme3utilities.Validate.nonZero(Validate.java:625)
        at com.jme3.bullet.NativePhysicsObject.setNativeId(NativePhysicsObject.java:173)
        at com.jme3.bullet.collision.shapes.infos.BoundingValueHierarchy.read(BoundingValueHierarchy.java:169)
        at com.jme3.export.binary.BinaryImporter.readObject(BinaryImporter.java:342)
        at com.jme3.export.binary.BinaryInputCapsule.readSavable(BinaryInputCapsule.java:457)
        at com.jme3.bullet.collision.shapes.MeshCollisionShape.read(MeshCollisionShape.java:275)
        at com.jme3.export.binary.BinaryImporter.readObject(BinaryImporter.java:342)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:242)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:125)
        at com.jme3.export.binary.BinaryImporter.load(BinaryImporter.java:109)
        at com.jme3.export.binary.BinaryLoader.load(BinaryLoader.java:36)
        at com.jme3.asset.DesktopAssetManager.loadLocatedAsset(DesktopAssetManager.java:260)
        at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:374)
        at com.jme3.asset.DesktopAssetManager.loadAsset(DesktopAssetManager.java:387)
        at com.jayfella.jme.vehicle.examples.worlds.Playground.load(Playground.java:116)
        at com.jayfella.jme.vehicle.Preloader.run(Preloader.java:51)

Stephen@SGold2012 MINGW64 ~/Downloads/jme-vehicles/jme-vehicles/bin
$
stephengold commented 3 years ago

Should be fixed now: https://github.com/stephengold/Minie/commit/17b18016d2c628047664aaf585b3772e8eb8f876