0

所以我正在使用legOS(小乐高机器人),基本上我正在做的是找到一个带有A *的迷宫的解决方案,我想用它来告诉机器人在迷宫中移动的位置。

但是我一直遇到的问题是,当我尝试启动优先队列时,它给了我这个异常

js.tinyvm.TinyVMException: Invalid byte tag in constant pool: 15
at js.tinyvm.ClassRecord.getClassRecord(ClassRecord.java:871)
at js.tinyvm.ClassRecord.storeReferredClasses(ClassRecord.java:394)
at js.tinyvm.Binary.processClasses(Binary.java:381)
at js.tinyvm.Binary.createFromClosureOf(Binary.java:309)
at js.tinyvm.TinyVMTool.link(TinyVMTool.java:97)
at js.tinyvm.TinyVMTool.link(TinyVMTool.java:48)
at lejos.pc.tools.NXJLink.start(NXJLink.java:134)
at lejos.pc.tools.NXJLink.run(NXJLink.java:101)
at lejos.pc.tools.NXJLink.start(NXJLink.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at lejos.pc.tools.ToolStarter.startTool(ToolStarter.java:31)
at lejos.pc.tools.NXJLink.main(NXJLink.java:28)
Caused by: org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
    at org.apache.bcel.classfile.Constant.readConstant(Constant.java:146)
    at org.apache.bcel.classfile.ConstantPool.<init>(ConstantPool.java:67)
    at org.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:222)
    at org.apache.bcel.classfile.ClassParser.parse(ClassParser.java:136)
    at js.tinyvm.ClassRecord.getClassRecord(ClassRecord.java:865)
    ... 14 more
Linking the file failed with exit status 1

我知道优先级队列,因为我已经评论了这些行并且程序链接成功

这是我开始排队的地方

PriorityQueue<State> frontier; 
    frontier = new PriorityQueue<State>(new CostComparator());
    PriorityQueue<State> visited; 
    visited = new PriorityQueue<State>(new CostComparator());

有人能告诉我为什么会这样吗?

我在 32 位环境中使用所有东西,但没有任何效果..

4

1 回答 1

1

Hope this helps for future reference, the runtime library for lejOS does not support Priority queue class, only queue so I had to implement my own queue with this library.

于 2016-11-21T02:02:00.350 回答