我正在尝试将 JNA 与 javaME 8.2 一起使用,但没有成功。我是 JNA 和 javaME 的新手。我目前正在使用 NetBeans 8.1、javaME SDK 8.2 和 JNA 4.2.1。
我有以下非常简单的测试应用程序,它只创建了一个 IntByReference JNA 类型的实例:
import javax.microedition.midlet.MIDlet;
import com.sun.jna.ptr.IntByReference;
public class JavaMEApplication2 extends MIDlet {
boolean bFirst = false;
boolean loopFlag = true;
//@Override
public void startApp() {
if (bFirst = false) {
try {
// Perform startup operations
} catch (Exception ex) {
ex.printStackTrace();
return;
}
bFirst = true;
} else {
System.out.println("Trying starting IMlet...");
IntByReference data = new IntByReference();
System.out.println("IMlet Demo is already started...");
}
// Start program here
}
代码构建没有错误,但是当我尝试在模拟器中执行它时(我使用的是随 SDK 安装的默认 EmbeddedDevice 模拟器),我收到以下错误。
Starting emulator in execution mode
Trying starting IMlet...
TRACE: <at java.lang.UnsupportedClassVersionError>, startApp threw an Exception
java.lang.UnsupportedClassVersionError
- javameapplication2/JavaMEApplication2.startApp(JavaMEApplication2.java:38)
- .unknown...unknown.(), bci=1
- .unknown...unknown.(), bci=5
- .unknown...unknown.(), bci=236
- .unknown...unknown.(), bci=38
- .unknown...unknown.(), bci=5
- .unknown...unknown.(), bci=127
- com/sun/midp/main/AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.UnsupportedClassVersionError
- javameapplication2/JavaMEApplication2.startApp(JavaMEApplication2.java:38)
- .unknown...unknown.(), bci=1
- .unknown...unknown.(), bci=5
- .unknown...unknown.(), bci=236
- .unknown...unknown.(), bci=38
- .unknown...unknown.(), bci=5
- .unknown...unknown.(), bci=127
- com/sun/midp/main/AppIsolateMIDletSuiteLoader.main(), bci=26
BUILD SUCCESSFUL (total time: 8 seconds)
我知道当您使用比用于执行的 JDK 更新的 JDK 编译类时,您会得到 java.lang.UnsupportedClassVersionError,但情况并非如此。
有人知道这里发生了什么吗?