在Eclipse中我得到了这个错误:
线程“main”中的异常 java.lang.UnsatisfiedLinkError中: com.nokia.mid.impl.isa.util.SharedObjects.nativeSetTable(Ljava / UTIL /哈希表)Ljava / util的/哈希表;
我可以看到SharedObjects,但nativeSetTable似乎不是一个方法。然而它可能被隐藏 - >我无权访问源代码。
这是我的代码:
connection = (HttpConnection)Connector.open(this.url);
这是追踪:
线程“main”中的异常java.lang.UnsatisfiedLinkError: com.nokia.mid.impl.isa.util.SharedObjects.nativeSetTable(Ljava / UTIL /哈希表)Ljava / util的/哈希表; 在 com.nokia.mid.impl.isa.util.SharedObjects.nativeSetTable(母语 方法)at com.nokia.mid.impl.isa.util.SharedObjects.createTable(SharedObjects.java:465) 在 com.nokia.mid.impl.isa.util.SharedObjects。(SharedObjects.java:181) 在 com.nokia.mid.impl.isa.io.GeneralSharedIO。(GeneralSharedIO.java:67) 在 com.sun.midp.io.ConnectionBaseAdapter.checkForPermission(ConnectionBaseAdapter.java:236) 在 com.sun.midp.io.ConnectionBaseAdapter.openPrim(ConnectionBaseAdapter.java:205) 在 com.sun.midp.io.ConnectionBaseAdapter.openPrim(ConnectionBaseAdapter.java:178) 在 com.sun.midp.io.InternalConnector.openPrim(InternalConnector.java:254) 在 com.sun.midp.io.InternalConnector.open(InternalConnector.java:153) 在 javax.microedition.io.Connector.open(Connector.java:138) 在 javax.microedition.io.Connector.open(Connector.java:120) 在 javax.microedition.io.Connector.open(Connector.java:104)
答案 0 :(得分:1)
我认为nativeSetTable()
受到保护或私有,这就是您没有看到它的原因。而且nativeSetTable()
是一个本机方法,这意味着它基于本机代码(已经为特定处理器编译并在特定的lib中可用[即DLL])。
UnsatisfiedLinkError
表示无法正确检索和执行此特定方法。
如果Java虚拟机无法找到声明为native的方法的适当本机语言定义,则抛出该文件。
这意味着您的Java ME模拟器必须缺少库。你应该尝试重新安装它。
资源:
答案 1 :(得分:0)
我猜你的源代码与nokia mid库的错误版本相结合。
答案 2 :(得分:0)
与Eclipse中的编译时类路径相比,可能是您的运行时类路径使用了SharedObjects所在的jar的不同版本。我会仔细检查你的类路径设置。
答案 3 :(得分:0)
好的,我找到了一个原因:
我在java中创建了一个测试类来测试我的代码,只是一个普通的java文件(使用main方法)。我把它作为普通的Java应用程序运行。然后,它不起作用。但是在我在Midlet中尝试之后,我没有得到错误!