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

これが今後の参考になれば幸いです。lejOS のランタイム ライブラリは Priority キュー クラスをサポートしておらず、キューのみをサポートしているため、このライブラリを使用して独自のキューを実装する必要がありました。

于 2016-11-21T02:02:00.350 に答える