是否有人成功地在JBullet中运行IntelliJ演示?当我使用ant构建脚本运行演示时,我发现了这样一个错误:
C:\Users\halin_000\ProgrammingProjects\Java\CS351L\JBullet\build.xml:77: java.lang.IllegalStateException: Stack.alloc( class )的第一个参数必须是常数(在com.bulletphysics.collision.dispatch.ConvexConcaveCollisionAlgorithm,方法processCollision类中)
你怎么解决这个问题?
发布于 2016-10-08 23:51:50
我今天也遇到了同样的问题。几年前,我曾经能够构建years,那时我已经将源代码置于版本控制之下。
结果是,使用Java7编译器(来自jdk1.7.0_79)构建很好,而使用Java8编译器(来自jdk1.8.0_101)构建失败,OP报告的消息失败了。
我认为一个更明确的解决方案是更新矢量化库,以满足Java 8编译器的更高标准,但与此同时,我已经将我的工具链恢复到了我可以继续使用的状态。
更新2016-10-08 22小时30东部时间点
我不满足于将我的工具链恢复到Java7,因此我深入研究了这个问题,并将其追溯到JStackAlloc,而不是我之前所想的向量数学。
使用Java8进行编译似乎会向字节码添加更多的指令节点,而以前没有这样的字节码。具体来说,LineNumberNode和LabelNode是在LdcInsnNode和MethodInsnNode之间添加的。
JStackAlloc正在寻找后两个节点,但并不期望找到额外的两个节点。很容易修复库,跳过这些额外的节点,尽管它们存在,但仍然可以执行它的任务。
从maven的maven化构建开始,下面是让它再起作用所需的差异。
请注意,这个版本的Javadoc构建似乎被破坏了。可以通过注释掉pom.xml配置文件中maven-javadoc-plugin的jar目标来禁用它。
https://stackoverflow.com/questions/32893840
复制相似问题