我收到一个java.lang.VerifyError,在oracle的页面上它说它因为不一致或安全问题而被抛出.但这可能是一件非常糟糕的事情,我甚至不知道我在寻找什么,或者我应该在哪个班级.
错误消息也没有说明:
java.lang.VerifyError: (class: proto/lua/libraries/ProtoLib$Lib1, method: call signature: ()Lproto/lua/LuaValue;) Wrong return type in function
Run Code Online (Sandbox Code Playgroud)
我应该注意哪些不一致的地方?任何人都可以根据错误告诉我应该在哪个班级看?
任何关于这些例外主题的一般帮助/信息也将受到赞赏
编辑:我重写了很多Lua库,直到我得到这个错误,在各个方面都完美无缺,我使用Java SE 6 Update 26
编辑:整个错误:
java.lang.VerifyError: (class: proto/lua/libraries/ProtoLib$Lib1, method: call signature: ()Lproto/lua/LuaValue;) Wrong return type in function
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at proto.lua.libraries.LibFunction.bind(LibFunction.java:169)
at proto.lua.libraries.LibFunction.bind(LibFunction.java:152)
at proto.lua.libraries.ProtoLib.call(ProtoLib.java:26)
at proto.lua.otherstuff.OneArgFunction.call(OneArgFunction.java:66)
at proto.lua.LuaValue.load(LuaValue.java:1358)
at proto.lua.RavenLua.standardGlobals(RavenLua.java:100)
at proto.ProjectPROTO.<clinit>(ProjectPROTO.java:51)
Could not find the main class: proto.ProjectPROTO. Program will exit.
Exception in thread "main" Java Result: 1
Run Code Online (Sandbox Code Playgroud)
所有proto.xxx.xxx.xxx类都是源代码的一部分
编辑:显然错误是因为我忘了一些@Override注释,不知道是什么让他们开始给出错误.
什么是完整堆栈跟踪?它应该显示哪个类正在调用该方法.可能原因是代码是针对编译它的库的不同版本执行的,并且这些库版本之间存在一些不兼容的更改(从错误消息看起来它是一个不同的方法返回类型).
如果该错误不是关于任何库,而是关于您自己的代码,那么请执行干净的构建.编译器应该生成有关可能在运行时导致验证错误的所有事情的编译错误.或者如果源代码是正确的,它应该正确地重建所有类文件.
java.lang.Verify错误的最大单一来源是依赖库与主应用程序之间的JVM版本不兼容.因此,如果您使用Java 5运行应用程序并且使用Java 6编译依赖库,则可能会遇到问题.我会开始研究用什么版本的Java来编译Protolib的版本?您正在使用.
| 归档时间: |
|
| 查看次数: |
7619 次 |
| 最近记录: |